14.9. PostgreSQL 不能處理中文?

PostgreSQL 中使用中文一向有小問題, 如 '許'、'社' 等等後面是 \ 的中文字都會出搥,直到 6.5 版以後,才加入了 multibyte 的支援。

PostgreSQL 的語言支援分 前/後端(frontend/backend),無論前端使用何種語言, 後端都會使用設定好的語言存入資料庫中。

這有什麼好處?例如:後端設定成繁體中文,前端設定成簡體中文, 然後,存入的繁體中文,顯示的是簡體中文,當然, 它不會做中、英翻譯。

要正確使用中文,比較保險的作法是後端使用 euc_tw 編碼,前端使用 big5 編碼,例如:

% createdb --encoding euc_tw test  ' 建>
立後端為 euc_tw 編碼的 db
% psql test  ' 使用 psql 管理工具,就像
mysql 般。
test=#  ' 已經進入 psql
test=# \encoding big5  ' 設定前端為 big5 編碼
test=# create table test (
test=# usrname char(20));  ' 建立 table
test=# insert into test values('許國榮');  ' 測試
test=# select * from test;  '您會看到正>
確的答案
test=# \q

也可以在 PostgreSQL 中下 PGCLIENTENCODING=BIG5 的指令,如果是使用 PHP + PostgreSQL 則使用以下方式:

 $conn = pg_connect("user=postgres dbname=stip");
 pg_exec($conn, "set client_encoding to 'BIG5'");

WWW: http://www.postgresql.org/