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'");