Xử Lý Bộ Mã Hóa Trong PostgreSQL

Cách Kiểm Tra Bộ Mã Hóa

1. Xem mã hóa của dữ liệu trong cơ sở dữ liệu.

psql -l

2. Xem bộ mã hóa trên máy chủ.

SHOW server_encoding;

3. Xem bộ mã hóa trên khách hàng.

SHOW client_encoding;

4. Xem thứ tự sắp xếp và phân loại ký tự mặc định.

Bộ Mã Hóa Được Hỗ Trợ

PostgreSQL hỗ trợ lưu trữ văn bản với nhiều bộ mã hóa khác nhau, bao gồm các bộ mã một byte như ISO 8859 và các bộ mã đa byte như EUC (Mã Mở Rộng Unix), UTF-8 và mã nội bộ Mule. Tất cả các bộ mã được hỗ trợ đều có thể sử dụng minh bạch từ phía khách hàng, ngoại trừ một số ít chỉ có thể sử dụng trên máy chủ. Bộ mã mặc định được chọn khi bạn chạy lệnh initdb. Bạn có thể ghi đè điều này khi tạo cơ sở dữ liệu mới, cho phép mỗi cơ sở dữ liệu sử dụng bộ mã khác nhau.

Lưu ý rằng mỗi cơ sở dữ liệu cần phải tương thích với cài đặt LC_CTYPELC_COLLATE. Nếu cấu hình ICU được bật, các khu vực do ICU cung cấp sẽ khả dụng cho hầu hết các mã hóa máy chủ nhưng không phải tất cả.

Thiết Lập Bộ Mã Hóa

1. Thiết Lập Bộ Mã Mặc Định Cho Toàn Bộ Nhóm Cơ Sở Dữ Liệu

Ví dụ, thiết lập bộ mã mặc định là SJIS (dành cho tiếng Nhật).

initdb -E SJIS
hoặc
initdb --encoding=SJIS

Nếu không có tùy chọn -E hoặc --encoding, initdb sẽ cố gắng xác định bộ mã phù hợp dựa trên vùng đã chọn.

2. Thiết Lập Bộ Mã Khi Tạo Cơ Sở Dữ Liệu

Khi tạo cơ sở dữ liệu mới, bạn có thể chỉ định bộ mã:

createdb -E GBK -T template0 --lc-collate=zh_CN.gbk --lc-ctype=zh_CN.gbk chinese_db
hoặc SQL:
CREATE DATABASE chinese_db WITH ENCODING 'GBK' LC_COLLATE='zh_CN.gbk' LC_CTYPE='zh_CN.gbk' TEMPLATE=template0;

Chú ý: Sử dụng template0 để tránh xung đột mã hóa và cài đặt vùng.

Các Ví Dụ Kiểm Tra Bộ Mã Hóa

1. Xem Mã Hóa Của Dữ Liệu Trong Hệ Thống

Danh sách các cơ sở dữ liệu và thông tin liên quan đến mã hóa.

psql -l

2. Xem Bộ Mã Hóa Trên Máy Chủ

SHOW server_encoding;

3. Xem Bộ Mã Hóa Trên Khách Hàng

SHOW client_encoding;

Thẻ: PostgreSQL Database-Encoding Character-Sets sql

Đăng vào ngày 12 tháng 7 lúc 12:11