Postgresql 9.1.24 Tài tỷ lệ kèo bóng đá | ||||
---|---|---|---|---|
prev | UP | Chương 22. Bản địa hóa | Tiếp theo |
Hỗ trợ bộ ký tự trongPostgreSQLCho phép bạn lưu trữ văn bản trong một nhiều bộ ký tự (còn được gọi là mã hóa), bao gồm cả Các bộ ký tự một byte như sê-ri ISO 8859 và Các bộ ký tự nhiều byte nhưEUC11052_11339PostgreSQLCụm cơ sở dữ tỷ lệ kèo bóng đá sử dụnginitDB. Nó có thể bị ghi đè khi bạn tạo một cơ sở dữ tỷ lệ kèo bóng đá, vì vậy bạn có thể có nhiều cơ sở dữ tỷ lệ kèo bóng đá với một bộ ký tự khác.
Tuy nhiên, một hạn chế quan trọng là mỗi cơ sở dữ tỷ lệ kèo bóng đá Bộ ký tự phải tương thích với cơ sở dữ tỷ lệ kèo bóng đálc_ctype(Phân loại ký tự) vàLC_Collate(Sắp xếp chuỗi thứ tự) Cài đặt địa phương. Vì11854_11857hoặcPOSIX11894_12087
Bảng 22-1Hiển thị Các bộ ký tự có sẵn để sử dụng trongPostgreSQL.
Bảng 22-1.PostgreSQLBộ ký tự
tên | Mô tả | Ngôn ngữ | Máy chủ? | byte/char | Bí danh |
---|---|---|---|---|---|
Big5 | Big Five | Trung Quốc truyền thống | Không | 1-2 | Win950, Windows950 |
EUC_CN | Mã UNIX-CN mở rộng | Trung Quốc đơn giản | Có | 1-3 | |
EUC_JP | 13658_13681 | Nhật Bản | Có | 1-3 | |
EUC_JIS_2004 | Code unix-jp mở rộng, JIS x 0213 | Nhật Bản | Có | 1-3 | |
EUC_KR | Mở rộng UNIX CODE-KR | Hàn Quốc | Có | 1-3 | |
EUC_TW | unix code-Tw | Trung Quốc truyền thống, Đài Loan | Có | 1-3 | |
GB18030 | Tiêu chuẩn quốc gia | Trung Quốc | Không | 1-4 | |
GBK | Tiêu chuẩn quốc gia mở rộng | Trung Quốc đơn giản | Không | 1-2 | Win936, Windows936 |
ISO_8859_5 | ISO 8859-5,ECMA 113 | Latin/Cyrillic | Có | 1 | |
ISO_8859_6 | 15522_15536ECMA 114 | Latin/tiếng Ả Rập | Có | 1 | |
ISO_8859_7 | ISO 8859-7,ECMA 118 | Latin/Hy Lạp | Có | 1 | |
ISO_8859_8 | ISO 8859-8,ECMA 121 | Latin/tiếng Do Thái | Có | 1 | |
Johab | Johab | Hàn Quốc (Hangul) | không | 1-3 | |
KOI8R | KOI8-R | Cyrillic (tiếng Nga) | Có | 1 | KOI8 |
KOI8U | KOI8-U | Cyrillic (Ukraine) | Có | 1 | |
Latin1 | ISO 8859-1,ECMA 94 | Tây Âu | Có | 1 | ISO88591 |
Latin2 | 17541_17555ECMA 94 | Trung Âu | Có | 1 | ISO88592 |
Latin3 | ISO 8859-3,ECMA 94 | Nam Âu | Có | 1 | ISO88593 |
Latin4 | ISO 8859-4,ECMA 94 | Bắc Âu | Có | 1 | ISO88594 |
Latin5 | ISO 8859-9,ECMA 128 | Thổ Nhĩ Kỳ | Có | 1 | ISO88599 |
Latin6 | ISO 8859-10,ECMA 144 | Nordic | Có | 1 | ISO885910 |
Latin7 | ISO 8859-13 | Baltic | Có | 1 | ISO885913 |
Latin8 | ISO 8859-14 | Celtic | Có | 1 | ISO885914 |
Latin9 | ISO 8859-15 | Latin1 với Euro và Accent | Có | 1 | ISO885915 |
Latin10 | ISO 8859-16,ASROSR 14111 | Rumani | Có | 1 | ISO885916 |
Mule_Internal | Mã nội bộ Mule | Emacs đa ngôn ngữ | Có | 1-4 | |
SJIS | SHIFT JIS | Nhật Bản | không | 1-2 | mskanji, ShiftJis, Win932, Windows932 |
Shift_Jis_2004 | SHIFT JIS, JIS X 0213 | Nhật Bản | không | 1-2 | |
SQL_ASCII | không xác định (xem văn bản) | bất kỳ | Có | 1 | |
UHC | Mã Hangul thống nhất | Hàn Quốc | không | 1-2 | Win949, Windows949 |
UTF8 | Unicode, 8-bit | tất cả | Có | 1-4 | Unicode |
Win866 | Windows CP866 | Cyrillic | Có | 1 | ALT |
Win874 | Windows CP874 | Thái | Có | 1 | |
Win1250 | Windows CP1250 | Trung Âu | Có | 1 | |
Win1251 | Windows CP1251 | Cyrillic | Có | 1 | Win |
Win1252 | Windows CP1252 | Tây Âu | Có | 1 | |
Win1253 | Windows CP1253 | Hy Lạp | Có | 1 | |
Win1254 | Windows CP1254 | Thổ Nhĩ Kỳ | Có | 1 | |
Win1255 | Windows CP1255 | Hê -bơ -rơ | Có | 1 | |
Win1256 | Windows CP1256 | Ả Rập | Có | 1 | |
Win1257 | Windows CP1257 | Baltic | Có | 1 | |
Win1258 | Windows CP1258 | Việt Nam | Có | 1 | ABC, TCVN, TCVN5712, VSCII |
Không phải tất cả máy kháchAPIs Hỗ trợ tất cả các bộ ký tự được liệt kê. Ví dụ:PostgreSQLTrình điều khiển JDBC không không hỗ trợMule_Internal, Latin6, Latin8vàLatin10.
TheSQL_ASCIICài đặt hành xử khác nhau đáng kể so với các cài đặt khác. Khi Bộ ký tự máy chủ làSQL_ASCII, The Máy chủ diễn giải các giá trị byte 0-127 theo ASCII Tiêu chuẩn, trong khi các giá trị byte 128-255 được coi là không thể giải thích được ký tự. Không có chuyển đổi mã hóa nào sẽ được thực hiện khi Cài đặt làSQL_ASCII. Vì vậy, điều này Cài đặt không phải là một tuyên bố rằng một mã hóa cụ thể được sử dụng, như một tuyên bố thiếu hiểu biết về mã hóa. TRONG Hầu hết các trường hợp, nếu bạn đang làm việc với bất kỳ dữ tỷ lệ kèo bóng đá không phải ASCII nào, đó là không khôn ngoan khi sử dụngSQL_ASCIICài đặt bởi vìPostgreSQLsẽ Không thể giúp bạn bằng cách chuyển đổi hoặc xác nhận không phải là ASCII ký tự.
initDBXác định mặc định bộ ký tự (mã hóa) cho mộtPostgreSQLcụm. Ví dụ,
initDB -e euc_jp
Đặt ký tự mặc định được đặt thànhEUC_JP(Mã Unix mở rộng cho tiếng Nhật). Bạn có thể sử dụng--Encodingthay vì-eNếu bạn thích các chuỗi tùy chọn dài hơn. Nếu không-ehoặc---EncodingTùy chọn được đưa ra,initDBcố gắng xác định thích hợp mã hóa để sử dụng dựa trên locale được chỉ định hoặc mặc định.
Bạn có thể chỉ định mã hóa không mặc định tại Tạo cơ sở dữ tỷ lệ kèo bóng đá thời gian, với điều kiện là mã hóa tương thích với Locale đã chọn:
26947_27037
Điều này sẽ tạo cơ sở dữ tỷ lệ kèo bóng đá có tênHàn Quốcsử dụng bộ ký tựEUC_KRvà LocaleKO_KR. Một cách khác để thực hiện điều này là sử dụng Lệnh SQL này:
27334_27451
Lưu ý rằng các lệnh trên chỉ định sao chépTemplate0Cơ sở dữ tỷ lệ kèo bóng đá. Khi sao chép bất kỳ cơ sở dữ tỷ lệ kèo bóng đá khác, cài đặt mã hóa và địa phương không thể đã thay đổi từ cơ sở dữ tỷ lệ kèo bóng đá nguồn, vì điều đó có thể dẫn đến dữ tỷ lệ kèo bóng đá tham nhũng. Để biết thêm thông tin, xemPhần 21.3.
Mã hóa cho cơ sở dữ tỷ lệ kèo bóng đá được lưu trữ trong danh mục hệ thốngpg_database. Bạn có thể thấy nó bằng cách sử dụng ThePSQL -LTùy chọn hoặc\ Llệnh.
$PSQL -LDanh sách cơ sở dữ tỷ lệ kèo bóng đá Tên | Chủ sở hữu | Mã hóa | Đối chiếu | Ctype | Truy cập các đặc quyền -----------+----------+-----------+-------------+--------------+----------------------------------------------------- clocaledb | Hlinnaka | SQL_ASCII | C | C | Tiếng Anhdb | Hlinnaka | UTF8 | en_gb.utf8 | en_gb.utf8 | Tiếng Nhật | Hlinnaka | UTF8 | ja_jp.utf8 | ja_jp.utf8 | Hàn Quốc | Hlinnaka | Euc_kr | ko_kr.euckr | ko_kr.euckr | Postgres | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | Template0 | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | = c/hlinnaka, hlinnaka = ctc/hlinnaka Template1 | Hlinnaka | UTF8 | fi_fi.utf8 | fi_fi.utf8 | = c/hlinnaka, hlinnaka = ctc/hlinnaka
quan trọng:Trên hầu hết các hệ điều hành hiện đại,PostgreSQLCó thể xác định Bộ ký tự nào được ngụ ý bởilc_ctype29232_29583
PostgreSQLsẽ cho phép Superusers để tạo cơ sở dữ tỷ lệ kèo bóng đá vớiSQL_ASCIImã hóa ngay cả khiLC_CTYPEkhông phảiChoặcPosix. Như đã lưu ý ở trên,SQL_ASCII29937_30208
PostgreSQL30466_30635pg_conversionDanh mục hệ thống.PostgreSQL30741_30800Bảng 22-2. Bạn có thể tạo chuyển đổi mới bằng lệnh SQLTạo chuyển đổi.
Bảng 22-2. Bộ ký tự máy khách/máy chủ Chuyển đổi
Bộ ký tự máy chủ | Bộ ký tự máy khách có sẵn |
---|---|
Big5 | Không được hỗ trợ như một máy chủ mã hóa |
EUC_CN | EUC_CN, MULE_INTERNAL, UTF8 |
EUC_JP | EUC_JP, MULE_INTERNAL, SJIS, UTF8 |
EUC_KR | EUC_KR, Mule_Internal, UTF8 |
EUC_TW | EUC_TW, Big5, Mule_Internal, UTF8 |
GB18030 | Không được hỗ trợ như một máy chủ mã hóa |
GBK | Không được hỗ trợ như một máy chủ mã hóa |
ISO_8859_5 | ISO_8859_5, KOI8R, Mule_Internal, UTF8, Win866, Win1251 |
ISO_8859_6 | ISO_8859_6, UTF8 |
ISO_8859_7 | ISO_8859_7, UTF8 |
ISO_8859_8 | ISO_8859_8, UTF8 |
Johab | Johab, UTF8 |
KOI8R | KOI8R, ISO_8859_5, MULE_INTERNAL, UTF8, Win866, Win1251 |
KOI8U | KOI8U, UTF8 |
Latin1 | Latin1, MULE_INTERNAL, UTF8 |
Latin2 | Latin2, Mule_Internal, UTF8, Win1250 |
Latin3 | Latin3, MULE_INTERNAL, UTF8 |
Latin4 | Latin4, MULE_INTERNAL, UTF8 |
Latin5 | Latin5, UTF8 |
Latin6 | Latin6, UTF8 |
Latin7 | Latin7, UTF8 |
Latin8 | Latin8, UTF8 |
Latin9 | Latin9, UTF8 |
Latin10 | Latin10, UTF8 |
Mule_Internal | Mule_Internal, Big5, EUC_CN, EUC_JP, EUC_KR, EUC_TW, ISO_8859_5, KOI8R, Latin1đếnLatin4, SJIS, Win866, Win1250, Win1251 |
SJIS | Không được hỗ trợ như một máy chủ mã hóa |
SQL_ASCII | bất kỳ (không Chuyển đổi sẽ được thực hiện) |
UHC | Không được hỗ trợ như một máy chủ mã hóa |
UTF8 | Tất cả được hỗ trợ mã hóa |
Win866 | Win866, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, Win1251 |
Win874 | Win874, UTF8 |
Win1250 | Win1250, Latin2, Mule_Internal, UTF8 |
Win1251 | Win1251, ISO_8859_5, KOI8R, MULE_INTERNAL, UTF8, Win866 |
Win1252 | Win1252, UTF8 |
Win1253 | Win1253, UTF8 |
Win1254 | Win1254, UTF8 |
Win1255 | Win1255, UTF8 |
Win1256 | Win1256, UTF8 |
Win1257 | Win1257, UTF8 |
Win1258 | Win1258, UTF8 |
Để bật chuyển đổi bộ ký tự tự động, bạn phải kểPostgreSQLNhân vật Đặt (mã hóa) bạn muốn sử dụng trong máy khách. Có một số cách để thực hiện điều này:
Sử dụng\ mã hóalệnh trongPSQL. \ mã hóaCho phép bạn thay đổi máy khách mã hóa khi đang bay. Ví dụ: để thay đổi mã hóa thànhSJIS, loại:
\ mã hóa SJIS
libpq(Phần 31.9) có các chức năng để Kiểm soát mã hóa máy khách.
Sử dụngđặt client_encoding thành. Đặt mã hóa máy khách có thể được thực hiện với SQL này yêu cầu:
đặt client_encoding thành 'value';
Ngoài ra, bạn có thể sử dụng cú pháp SQL tiêu chuẩnĐặt têncho mục đích này:
Đặt tên 'giá trị';
Để truy vấn mã hóa máy khách hiện tại:
hiển thị client_encoding;
Để trở lại mã hóa mặc định:
Đặt lại client_encoding;
Sử dụngpgclientencoding. Nếu Biến môi trườngpgclientencoding43133_43381
Sử dụng biến cấu hìnhclient_encoding. Nếuclient_encoding43594_43819
Nếu không thể chuyển đổi một ký tự cụ thể - Giả sử bạn đã chọnEUC_JPcho máy chủ vàLatin1cho máy khách và Một số nhân vật Nhật Bản được trả lại không có Đại diện trongLatin1- một lỗi là báo cáo.
Nếu bộ ký tự máy khách được xác định làSQL_ASCII, Chuyển đổi mã hóa bị vô hiệu hóa, Bất kể bộ ký tự của máy chủ. Cũng giống như Máy chủ, sử dụngSQL_ASCIIlà không khôn ngoan Trừ khi bạn đang làm việc với dữ tỷ lệ kèo bóng đá All-ASCII.
Đây là những nguồn tốt để bắt đầu tìm hiểu về các loại khác nhau của các hệ thống mã hóa.
Chứa các giải thích chi tiết vềEUC_JP, EUC_CN, EUC_KR, EUC_TW.
Trang web của Hiệp hội Unicode.
UTF-8 (8 bit Định dạng chuyển đổi UCS/Unicode) được xác định ở đây.