2011-07-23 47 views
1

我有一個Postgres 8.2數據庫。
表編碼:SQL-ASCII。 (我不能改變這個:()
的Xhtml字符集:字符集= 異8859-2
的文件編碼爲ANSII(記事本++)postgres編碼問題

當我表明用AJAX(檢索的數據。 。jQuery的)我必須使用函數utf8_encode()當這個數據,插入數據庫,而不是重音字母(öüőűú)我看到這õ û和其他

問:我該如何解決這個編碼問題?

編輯 這項工作我:

pg_dump -E LATIN9 alt > alt.sql 
createdb -T template0 -E UTF8 new_database 
psql -f alt.sql new_database 

回答

1

我聽起來像你混合UTF8編碼和HTML/XML逃逸。

重新配置數據庫的編碼設置,relevant bits say:在使用initdb的初始化你的PostgreSQL數據庫羣集選擇

默認字符集。創建數據庫時可以覆蓋它,因此可以讓多個數據庫各自具有不同的字符集。

As well as

CREATE DATABASE name 
    [ [ WITH ] [ OWNER [=] dbowner ] 
     [ TEMPLATE [=] template ] 
     [ ENCODING [=] encoding ] 
     [ TABLESPACE [=] tablespace ] 
     [ CONNECTION LIMIT [=] connlimit ] ] 

編輯:每匹馬的名字,你不能改變數據庫的編碼,所以你可能需要傾倒的模式和數據,因此編輯轉儲,並重新相應地創建它。

+1

您只能在創建數據庫時指定編碼。一旦數據庫被創建,你就不能改變它。請參閱ALTER DATABASE命令:http://www.postgresql.org/docs/current/static/sql-alterdatabase.html –

+0

不幸的是,我無法刪除數據(基數),這是公司的數據庫。 – EncodeProblem

+0

對不起,我的英語知識並不完美,但現在,我明白你的建議。 :) – EncodeProblem