Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
Prev | Backward nhanh | Chương 20. Bản địa hóa | Chuyển tiếp nhanh | Tiếp theo |
Hỗ trợ bộ ký tự trongPostgreSQL10846_11018EUC(Mã Unix mở rộng), Unicode và mã nội bộ Mule. Tất cả các bộ ký tự có thể được sử dụng minh bạch trong toàn bộ máy chủ. (Nếu bạn sử dụng tiện ích mở rộng các chức năng từ các nguồn khác, nó phụ thuộc vào việc họ đã viết Mã của chúng một cách chính xác.) Bộ ký tự mặc định được chọn Trong khi khởi tạo của bạnPostgreSQLCụm cơ sở dữ liệu bằng cách sử dụnginitDB. Nó có thể bị ghi đè khi bạn tạo một cơ sở dữ liệu sử dụngcreatedbhoặc bằng cách sử dụng Lệnh SQLTạo cơ sở dữ liệu. Vì vậy, bạn có thể có nhiều cơ sở dữ liệu với một bộ ký tự khác nhau.
Bảng 20-1Hiển thị các bộ ký tự có sẵn để sử dụng trong máy chủ.
Bảng 20-1. Bộ ký tự máy chủ
tên | Mô tả |
---|---|
SQL_ASCII | ASCII |
EUC_JP | Nhật BảnEUC |
EUC_CN | Trung QuốcEUC |
EUC_KR | Hàn QuốcEUC |
Johab | Hàn QuốcEUC(cơ sở treo) |
13167_13175 | Đài LoanEUC |
Unicode | unicode (UTF-8) |
MULE_INTERNAL | Mã nội bộ Mule |
Latin1 | ISO 8859-1/ECMA94 (Bảng chữ cái Latin số 1) |
Latin2 | ISO 8859-2/ECMA94 (Bảng chữ cái Latin số 2) |
Latin3 | ISO 8859-3/ECMA94 (Bảng chữ cái Latin số 3) |
Latin4 | ISO 8859-4/ECMA94 (Bảng chữ cái Latin số 4) |
Latin5 | ISO 8859-9/ECMA128 (Bảng chữ cái Latin số 5) |
Latin6 | ISO 8859-10/ECMA144 (Bảng chữ cái Latin số 6) |
Latin7 | ISO 8859-13 (Bảng chữ cái Latin số 7) |
Latin8 | ISO 8859-14 (Bảng chữ cái Latin số 8) |
Latin9 | ISO 8859-15 (Bảng chữ cái Latin số 9) |
Latin10 | ISO 8859-16/ASROSR 14111 (Bảng chữ cái Latin số 10) |
ISO_8859_5 | ISO 8859-5/ECMA113 (Latin/Cyrillic) |
ISO_8859_6 | ISO 8859-6/ECMA114 (Latin/tiếng Ả Rập) |
ISO_8859_7 | ISO 8859-7/ECMA118 (Latin/Hy Lạp) |
ISO_8859_8 | ISO 8859-8/ECMA121 (tiếng Latin/tiếng Do Thái) |
KOI8 | KOI8-r (u) |
win | Windows CP1251 |
alt | Windows CP866 |
Win1256 | Windows CP1256 (tiếng Ả Rập) |
TCVN | TCVN-5712/Windows CP1258 (Việt Nam) |
Win874 | Windows CP874 (Thái) |
quan trọng:trướcPostgreSQL7.2,Latin517239_17292Latin5Phương tiện ISO 8859-9. Nếu như bạn có mộtLatin5Cơ sở dữ liệu được tạo Vào ngày 7.1 trở lên và muốn di chuyển đến 7.2 trở lên, bạn nên cẩn thận về sự thay đổi này.
không phải tất cảAPIS 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 hỗ trợMule_Internal, Latin6, Latin8vàLatin10.
initDBXác định mặc định Bộ ký tự cho mộtPostgreSQLCụm. Ví dụ,
initDB -e euc_jp
Đặt bộ ký tự mặc định (mã hóa) 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 nhập tùy chọn dài hơn chuỗi. Nếu không-ehoặc---EncodingTùy chọn được đưa ra,SQL_ASCIIđược sử dụng.
Bạn có thể tạo cơ sở dữ liệu với một ký tự khác bộ:
createdb -e euc_kr Hàn Quốc
Điều này sẽ tạo cơ sở dữ liệu có tênHàn Quốcsử dụng bộ ký tựEUC_KR. Một cách khác để thực hiện điều này là sử dụng Lệnh SQL này:
Tạo cơ sở dữ liệu Hàn Quốc với mã hóa 'euc_kr';
Mã hóa cho cơ sở dữ liệu được lưu trữ trong danh mục hệ thốngpg_database. Bạn có thể thấy rằng bằng cách sử dụng The-LTùy chọn hoặc\ Llệnh củaPSQL.
$PSQL -LDanh sách cơ sở dữ liệu Cơ sở dữ liệu | Chủ sở hữu | Mã hóa ---------------+---------+--------------- euc_cn | T-ishii | EUC_CN EUC_JP | T-ishii | EUC_JP euc_kr | T-ishii | EUC_KR euc_tw | T-ishii | EUC_TW MULE_ INITERNAL | T-ishii | MULE_ INITERNAL hồi quy | T-ishii | SQL_ASCII Template1 | T-ishii | EUC_JP Kiểm tra | T-ishii | EUC_JP Unicode | T-ishii | Unicode (9 hàng)
PostgreSQLHỗ trợ Chuyển đổi bộ ký tự tự động giữa máy chủ và máy khách cho một số bộ ký tự nhất định. Thông tin chuyển đổi là được lưu trữ trongpg_conversion20290_20374Tạo chuyển đổi. PostgreSQLđi kèm với một số Chuyển đổi được xác định trước. Chúng được liệt kê trongBảng 20-2.
Bảng 20-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 |
---|---|
SQL_ASCII | SQL_ASCII, unicode, MULE_INTERNAL |
EUC_JP | EUC_JP, SJIS, Unicode, Mule_Internal |
EUC_CN | EUC_CN, Unicode, MULE_INTERNAL |
EUC_KR | euc_kr, Unicode, MULE_INTERNAL |
Johab | Johab, Unicode |
EUC_TW | EUC_TW, Big5, Unicode, Mule_Internal |
Latin1 | Latin1, Unicode Mule_Internal |
Latin2 | Latin2, Win1250, Unicode, MULE_INTERNAL |
Latin3 | Latin3, Unicode, Mule_Internal |
Latin4 | Latin4, Unicode, Mule_Internal |
Latin5 | Latin5, Unicode |
Latin6 | Latin6, Unicode, MULE_INTERNAL |
Latin7 | Latin7, Unicode, MULE_INTERNAL |
Latin8 | Latin8, unicode, 24369_24384 |
Latin9 | Latin9, unicode, Mule_Internal |
Latin10 | 24755_24764, unicode, Mule_Internal |
ISO_8859_5 | ISO_8859_5, Unicode, MULE_INTERNAL, win, alt, KOI8 |
ISO_8859_6 | ISO_8859_6, unicode |
ISO_8859_7 | ISO_8859_7, Unicode |
ISO_8859_8 | ISO_8859_8, Unicode |
Unicode | EUC_JP, SJIS, euc_kr, UHC, Johab, EUC_CN, GBK, EUC_TW, Big5, Latin1đếnLatin10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, win, Alt, KOI8, Win1256, TCVN, Win874, GB18030, Win1250 |
Mule_Internal | EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, Big5, Latin1đếnLatin5, win, ALT, Win1250, Big5, ISO_8859_5, KOI8 |
KOI8 | ISO_8859_5, win, ALT, KOI8, Unicode, MULE_INTERNAL |
win | ISO_8859_5, win, Alt, KOI8, unicode, MULE_INTERNAL |
Alt | ISO_8859_5, win, Alt, KOI8, unicode, Mule_Internal |
Win1256 | Win1256, Unicode |
TCVN | TCVN, Unicode |
Win874 | Win874, Unicode |
29274_29347PostgreSQLThe Bộ ký 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
sử dụnglibpqchức năng.\ mã hóathực tế gọipqsetClientEncoding ()
cho nó
mục đích.
int pqsetClientEncoding (pgconn *Conn, const char *mã hóa);
WHEREConnlà a kết nối với máy chủ vàmã hóa30443_30647
int pqClientEncoding (const pgconn *Conn);
Lưu ý rằng nó trả về ID mã hóa, không phải là biểu tượng Chuỗi nhưEUC_JP. Để chuyển đổi ID mã hóa thành tên mã hóa, bạn có thể sử dụng:
char *pg_encoding_to_char (intmã hóa_id);
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 'giá trị';
Ngoài ra, bạn có thể sử dụng cú pháp SQL tiêu chuẩn hơ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 như Biến môi trườngpgclientencodingđược xác định trong máy khách môi trường, mã hóa máy khách đó được chọn tự động Khi kết nối với máy chủ được thực hiện. (Điều này có thể sau đó được ghi đè bằng bất kỳ phương thức nào khác đã đề cập ở trên.)
Sử dụng biến cấu hìnhclient_encoding. Nếuclient_encodingBiến trongPostgreSql.confđược đặt, máy khách đó mã hóa được chọn tự động khi kết nối với Máy chủ được thực hiện. (Điều này sau đó có thể được ghi đè bằng cách sử dụng bất kỳ phương pháp nào khác được đề cập ở trên.)
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àLatin1Đối với máy khách, sau đó Một số ký tự Nhật Bản không thể được chuyển đổi thànhLatin1- Nó được chuyển đổi thành thập lục phân của nó giá trị byte trong ngoặc đơn, ví dụ:(826C).
Đâ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.
Giải thích chi tiết vềEUC_JP, EUC_CN, EUC_KR, EUC_TWXuất hiện trong Phần 3.2.
33939_33979
UTF-8 được xác định đây.