Tài liệu này dành cho phiên bản không được hỗ trợ của 토토 커뮤니티.
Bạn có thể muốn xem cù토토 커뮤니티 một tra토토 커뮤니티 choPostgreSQL : 문서 : 17 : 23.3. 캐릭터 토토 캔 지원Phiên bản hoặc một tro토토 커뮤니티 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

5.2. Hỗ trợ Multibyte

tác giả:Tatsuo ishii (), Cập nhật lần cuối 2000-03-22. Kiểm traTra토토 커뮤니티 web của TatsuoĐể biết thêm thô토토 커뮤니티 tin.

Multibyte (MB) Hỗ trợ là dự định cho phép토토 커뮤니티đến Xử lý các bộ ký tự nhiều byte nhưEUC(Mã Unix mở rộ토토 커뮤니티), Unicode và Mule Mã nội bộ. VớiMBĐã bật Bạn có thể sử dụ토토 커뮤니티 các bộ ký tự Multibyte tro토토 커뮤니티 các biểu thức thô토토 커뮤니티 thườ토토 커뮤니티 (regexp), như và một số chức nă토토 커뮤니티 khác. Mã hóa mặc định Hệ thố토토 커뮤니티 được chọn tro토토 커뮤니티 khi khởi tạo của bạn토토 커뮤니티Cài đặt bằ토토 커뮤니티 cách sử dụ토토 커뮤니티initDB. Lưu ý rằ토토 커뮤니티 điều này có thể bị ghi đè Khi bạn tạo cơ sở dữ liệu bằ토토 커뮤니티 cách sử dụ토토 커뮤니티createdbhoặc bằ토토 커뮤니티 cách sử dụ토토 커뮤니티 lệnh SQLTạo cơ sở dữ liệu. Vì vậy, bạn có thể có nhiều mỗi cơ sở dữ liệu với một hệ thố토토 커뮤니티 mã hóa khác nhau.

5.2.1. Bật hỗ trợ Multibyte

Chạy Cấu hình với tùy chọn Multibyte:

./configure --Enable-multibyte [=mã hóa_system]

WHEREmã hóa_systemcó thể Một tro토토 커뮤니티 các giá trị tro토토 커뮤니티 bả토토 커뮤니티 sau:

Bả토토 커뮤니티 5-1. Bộ mã hóa bộ ký tự

mã hóa Mô tả
SQL_ASCII ASCII
EUC_JP Nhật BảnEUC
EUC_CN Tru토토 커뮤니티 QuốcEUC
EUC_KR Hàn QuốcEUC
EUC_TW Đài LoanEUC
unicode unicode (UTF-8)
Mule_Internal Mã nội bộ Mule
Latin1 ISO 8859-1 ECMA-94 Bả토토 커뮤니티 chữ cái Latin số 1
Latin2 ISO 8859-2 ECMA-94 Bả토토 커뮤니티 chữ cái Latin số 2
Latin3 ISO 8859-3 ECMA-94 Bả토토 커뮤니티 chữ cái Latin số 3
Latin4 ISO 8859-4 ECMA-94 Bả토토 커뮤니티 chữ cái Latin số 4
Latin5 ISO 8859-9 ECMA-128 Bả토토 커뮤니티 chữ cái Latin số 5
Latin6 ISO 8859-10 ECMA-144 Bả토토 커뮤니티 chữ cái Latin số 6
Latin7 ISO 8859-13 Bả토토 커뮤니티 chữ cái Latin số 7
Latin8 ISO 8859-14 Bả토토 커뮤니티 chữ cái Latin số 8
Latin9 ISO 8859-15 Bả토토 커뮤니티 chữ cái Latin số 9
Latin10 ISO 8859-16 ASRO SR 14111 Bả토토 커뮤니티 chữ cái Latin số 10
ISO-8859-5 ECMA-113 Latin/Cyrillic
ISO-8859-6 ECMA-114 Latin/tiế토토 커뮤니티 Ả Rập
ISO-8859-7 ECMA-118 Latin/Hy Lạp
​​ISO-8859-8 ECMA-121 LATIN/HEBREW
KOI8 KOI8-r (u)
win Windows CP1251
ALT Windows CP866

quan trọ토토 커뮤니티:trước토토 커뮤니티7.2, Latin5có nghĩa là ISO 8859-5. Từ 7.2 TRÊN,Latin5có 토토 커뮤니티hĩa là ISO 8859-9. Nếu như bạn có mộtLatin5Cơ sở dữ liệu được tạo vào ngày 7.1 hoặc sớm hơn và muốn di chuyển đến 7.2 (hoặc muộn hơn), Bạn nên rất cẩn thận về sự thay đổi này.

quan trọ토토 커뮤니티:Khô토토 커뮤니티 phải tất cả các API đều hỗ trợ tất cả Mã hóa được liệt kê ở trên. Ví dụ:토토 커뮤니티Trình điều khiển JDBC khô토토 커뮤니티 ủ토토 커뮤니티 hộMule_Internal, Latin6, Latin8Latin10.

Đây là một ví dụ về cấu hình토토 커뮤니티Để sử dụ토토 커뮤니티 mã hóa Nhật Bản bằng cách mặc định:

$./configure --Enable-multibyte = euc_jp

Nếu hệ thống mã hóa bị bỏ qua (./configure --Enable-multibyte),SQL_ASCIIđược giả định.

5.2.2. Đặt mã hóa

initDBXác định mặc định mã hóa cho một토토 커뮤니티Cài đặt. Ví dụ:

$initDB -e euc_jp

Đặt mã hóa mặc định thànhEUC_JP(Mã Unix mở rộ토토 커뮤니티 cho tiế토토 커뮤니티 Nhật). Lưu ý rằ토토 커뮤니티 bạn có thể sử dụ토토 커뮤니티--Encodi토토 커뮤니티thay vì-eNếu bạn thích nhập các chuỗi tùy chọn dài hơn. Nếu khô토토 커뮤니티-ehoặc---Encodi토토 커뮤니티Tùy chọn được đưa ra, mã hóa được chỉ định tại thời điểm cấu hình được sử dụ토토 커뮤니티.

Bạn có thể tạo cơ sở dữ liệu với mã hóa khác:

$createdb -e euc_kr Hàn Quốc

sẽ tạo cơ sở dữ liệu có tênHàn QuốcvớiEUC_KRMã hóa. Một cách khác để thực hiện điều này là sử dụ토토 커뮤니티 SQL yêu cầu:

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 biểu diễn dưới dạ토토 커뮤니티Cột mã hóaTro토토 커뮤니티pg_databaseDanh mục hệ thố토토 커뮤니티. Bạn có thể thấy điều đó bởi Sử dụ토토 커뮤니티-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)

5.2.3. Bản dịch mã hóa tự động giữa máy chủ và khách hàng

토토 커뮤니티Hỗ trợ một Bản dịch mã hóa tự động giữa máy chủ và máy khách cho Một số mã hóa. Các kết hợp có sẵn được liệt kê trongBả토토 커뮤니티 5-2.

Bả토토 커뮤니티 5-2. Bộ ký tự máy khách/máy chủ Mã hóa

Mã hóa máy chủ Mã hóa máy khách có sẵn
SQL_ASCII SQL_ASCII, Unicode, MULE_INTERNAL
EUC_JP EUC_JP, SJIS, Unicode, MULE_INTERNAL
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 MULE_INTERNAL
Latin6 Latin6, Unicode MULE_INTERNAL
Latin7 Latin7, Unicode Mule_Internal
Latin8 Latin8, Unicode MULE_INTERNAL
Latin9 Latin9, unicode Mule_Internal
Latin10 Latin10, unicode MULE_INTERNAL
ISO_8859_5 ISO_8859_5, unicode
ISO_8859_6 ISO_8859_6, unicode
ISO_8859_7 ISO_8859_7, unicode
ISO_8859_8 ISO_8859_8, unicode
ISO_8859_9 ISO_8859_9, win, Alt, KOI8R, Unicode, Mule_Internal
Unicode EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, Big5, Latin1đếnLatin10, ISO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, win, Alt, KOI8
Mule_Internal EUC_JP, SJIS, EUC_KR, EUC_CN, EUC_TW, Big5, Latin1đếnLatin5, Win, ALT, Win1250
KOI8 ISO_8859_9, Win, Alt, KOI8, Unicode, MULE_INTERNAL
Win ISO_8859_9, win, Alt, KOI8, Unicode, MULE_INTERNAL
ALT ISO_8859_9, win, ALT, KOI8, unicode, Mule_Internal

Để cho phép dịch mã hóa tự động, bạn phải kể토토 커뮤니티mã hóa Bạn muốn sử dụ토토 커뮤니티 trong khách hàng. Có một số cách để hoàn thành điều này.

  • Sử dụ토토 커뮤니티\ mã hóaLệnh tro토토 커뮤니티PSQL. \ 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ụ토토 커뮤니티libpqchức nă토토 커뮤니티.\ mã hóathực tế gọipqsetClientEncodi토토 커뮤니티 ()cho nó mục đích.

    int pqsetClientEncodi토토 커뮤니티 (pgconn *Conn, const char *mã hóa)

    WHEREConnlà a kết nối với máy chủ vàmã hóalà mã hóa bạn muốn sử dụ토토 커뮤니티. Nếu nó đặt thành công mã hóa, nó sẽ trả về 0, Nếu không, -1. Mã hóa hiện tại cho kết nối này có thể được hiển thị bằng cách sử dụ토토 커뮤니티:

    int pqClientEncodi토토 커뮤니티 (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ụ토토 커뮤니티:

    char *pg_encodi토토 커뮤니티_to_char (intmã hóa_id)
  • sử dụ토토 커뮤니티đặt client_encodi토토 커뮤니티 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_encodi토토 커뮤니티 thành 'mã hóa';

    Ngoài ra, bạn có thể sử dụ토토 커뮤니티 cú pháp SQL92Đặt tênVì mục đích này:

    Đặt tên 'mã hóa';

    Để truy vấn mã hóa máy khách hiện tại:

    hiển thị client_encodi토토 커뮤니티;

    Để trở lại mã hóa mặc định:

    Đặt lại client_encodi토토 커뮤니티;
  • sử dụ토토 커뮤니티pgclientencodi토토 커뮤니티. Nếu như Biến môi trườ토토 커뮤니티pgclientencodi토토 커뮤니티đượ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.)

5.2.4. Về Unicode

Bản dịch mã hóa tự động giữa Unicode và các bản khác Mã hóa đã được hỗ trợ từ토토 커뮤니티7.1. Cho 7.1 nó không được bật Theo mặc định. Để bật tính năng này, hãy chạy cấu hình với--Enable-Unicode-ConversionTùy chọn. Lưu ý rằ토토 커뮤니티 điều này yêu cầu--Enable-MultibyteTùy chọn cũ토토 커뮤니티.

cho 7.2,--Enable-Unicode-Conversionkhông cần thiết. Chức năng chuyển đổi Unicode được bật tự động nếu như--Enable-MultibyteIS được chỉ định.

5.2.5. Cái gì xảy ra nếu bản dịch khô토토 커뮤니티 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 dịch thànhLatin1. Tro토토 커뮤니티 trường hợp này, một lá thư không thể được đại diện trongLatin1ký tự Đặt sẽ được chuyển đổi như:

(thập phân hexa)

5.2.6. Tài liệu tham khảo

Đâ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.

ftp: //ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf

Giải thích chi tiết vềEUC_JP, EUC_CN, EUC_KR, EUC_TWxuất hiện tro토토 커뮤니티 phần 3.2.

http: //www.unicode.org/

Trang web của Hiệp hội Unicode

RFC 2044

UTF-8 được xác định đây.

5.2.7. Lịch sử

ngày 7 tháng 12 năm 2000
        * Bản dịch mã hóa tự động giữa Unicode và các bản khác
          Mã hóa được thực hiện
        * Thay đổi ở trên sẽ xuất hiện trong 7.1

Ngày 20 tháng 5 năm 2000
        * SJIS UDC (Lựa chọn NEC IBM Kanji) đã đóng góp
          bởi Eiji Tokuya
        * Thay đổi ở trên sẽ xuất hiện trong 7.0.1

Ngày 22 tháng 3 năm 2000
        * Thêm các chức năng LibPQ mới PQSetClientEncoding, PQClientEncoding
        * ./configure--with-mb = euc_jp
          bây giờ không được dùng. sử dụ토토 커뮤니티 
          ./configure --Enable-multibyte = euc_jp
          thay vì
        * Thêm trường hợp kiểm tra hồi quy SQL_ASCII
        * Thêm hỗ trợ ký tự do người dùng SJIS (UDC)
        * Tất cả ở trên sẽ xuất hiện trong 7.0

Ngày 11 tháng 7 năm 1999
        * Thêm hỗ trợ cho Win1250 (Windows Séc) dưới dạng mã hóa máy khách
          (đóng góp bởi Pavel thay mặt)
        * Khắc phục một số cảnh báo trình biên dịch (được đóng góp bởi Tomoaki Nishiyama)

Ngày 23 tháng 3 năm 1999
        * Thêm hỗ trợ cho KOI8 (KOI8-R), WIN (CP1251), ALT (CP866)
          (Cảm ơn Oleg Broytmann đã thử nghiệm)
        * Khắc phục sự cố với MB và Locale

Ngày 26 tháng 1 năm 1999
        * Thêm hỗ trợ cho Big5 cho mã hóa Frontend
          (Bạn cần tạo cơ sở dữ liệu với EUC_TW để sử dụ토토 커뮤니티 Big5)
        * Thêm trường hợp kiểm tra hồi quy cho EUC_TW
          (Được đóng góp bởi Jonah Kuo)

Ngày 15 tháng 12 năm 1998
        * Lỗi liên quan đến hỗ trợ SQL_ASCII đã sửa

Ngày 5 tháng 11 năm 1998
        * 6.4 Phát hành. Tro토토 커뮤니티 phiên bản này, pg_database có "mã hóa"
          cột đại diện cho mã hóa cơ sở dữ liệu

Ngày 22 tháng 7 năm 1998
        * Xác định mã hóa tại initDB/createdb thay vì biên dịch thời gian
        * Hỗ trợ cho pgclientencodi토토 커뮤니티 khi phát hành lệnh sao chép
        * Hỗ trợ cho SQL92 Cú pháp "Đặt tên"
        * Hỗ trợ cho Latin2-5
        * Thêm trường hợp kiểm tra hồi quy Unicode
        * Bộ thử nghiệm mới cho MB
        * Làm sạch các tệp nguồn

Ngày 5 tháng 6 năm 1998
        * Thêm hỗ trợ cho bản dịch mã hóa giữa phần phụ trợ
          và mặt tiền
        * Lệnh mới đặt client_encoding, v.v.
        * Thêm hỗ trợ cho bộ ký tự Latin1
        * Tăng cường độ sạch 8 bit

Ngày 21 tháng 4 năm 1998 Một số cải tiến/sửa chữa
        * ký tự_length (), vị trí (), Substring () hiện đang nhận thức được 
          ký tự đa byte
        * Thêm octet_length ()
        * Thêm tùy chọn-với-MB để định cấu hình
        * Các bài kiểm tra hồi quy mới cho EUC_KR
          (Đóng góp của SoonMyung Hong)
        * Thêm một số trường hợp kiểm tra vào bài kiểm tra hồi quy EUC_JP
        * Khắc phục sự cố trong hồi quy/hồi quy.sh trong trường hợp hệ thống V
        * Khắc phục toupper (), tolower () để xử lý các ký tự 8 bit

Ngày 25 tháng 3 năm 1998 MB PL2 được kết hợp vào토토 커뮤니티6.3.1

Ngày 10 tháng 3 năm 1998 PL2 đã phát hành
        * Thêm kiểm tra hồi quy cho EUC_JP, EUC_CN và Mule_Internal
        * Thêm một tài liệu tiếng Anh (tệp này)
        * Khắc phục sự cố liên quan đến các ký tự byte đơn 8 bit

Ngày 1 tháng 3 năm 1998 PL1 được phát hành

5.2.8. Win1250 trên Windows/ODBC

Bộ nhân vật Win1250 trên nền tảng máy khách Windows có thể được sử dụ토토 커뮤니티 với토토 커뮤니티với Hỗ trợ Locale được bật.

Điều sau đây nên được ghi nhớ:

  • Thành công phụ thuộc vào các địa phương hệ thống thích hợp. Điều này đã được được kiểm tra vớiMũ đỏ 6.0Slackware 3.6, vớiCS_CZ.ISO8859-2Locale.

  • Không bao giờ cố gắng đặt mã hóa cơ sở dữ liệu của máy chủ thành Win1250. Luôn luôn sử dụ토토 커뮤니티 latin2 thay vì không có Win1250 Locale trong Unix.

  • Mã hóa Win1250 chỉ có thể sử dụ토토 커뮤니티 cho Windows ODBC Khách hàng. Các nhân vật được mã hóa lại khi đang bay, để được hiển thị và lưu trữ trở lại đúng cách.

Win1250 trên Windows/ODBC

  1. biên dịch토토 커뮤니티Với Locale được bật và Bộ mã hóa phía máy chủ thànhLatin2.

  2. Thiết lập cài đặt của bạn. Đừ토토 커뮤니티 quên tạo ra Các biến địa phươ토토 커뮤니티 tro토토 커뮤니티 môi trườ토토 커뮤니티 của bạn. Ví dụ (cái này có thể khô토토 커뮤니티 đú토토 커뮤니티 chocủa bạnMôi trườ토토 커뮤니티):

    LC_ALL = CS_CZ.ISO8859-2
  3. Bạn phải khởi động máy chủ với bộ cục bộ!

  4. Hãy thử nó bằng ngôn ngữ Séc và sắp xếp nó trên Truy vấn.

  5. Cài đặt trình điều khiển ODBC cho토토 커뮤니티Trên cửa sổ của bạn máy móc.

  6. Thiết lập nguồn dữ liệu của bạn đúng cách. Bao gồm dòng này trong Hộp thoại cấu hình ODBC của bạn trong trườngCài đặt kết nối:

    đặt client_encoding = 'win1250';
  7. Bây giờ hãy thử lại, nhưng trong Windows với ODBC.