0
何時執行查詢COPY TO ... CSV,我創建CSV文件。當在excel中打開它應該與國家字符的名稱列時,BUt不是它應該的。所以我的問題是,如果在一個SQL查詢中可以將此編碼更改爲utf8?或者是其他東西?因爲我希望將新創建的CSV文件作爲網絡用戶的最終產品。我希望有人明白我想要的東西:)將SQL編碼爲CSV
何時執行查詢COPY TO ... CSV,我創建CSV文件。當在excel中打開它應該與國家字符的名稱列時,BUt不是它應該的。所以我的問題是,如果在一個SQL查詢中可以將此編碼更改爲utf8?或者是其他東西?因爲我希望將新創建的CSV文件作爲網絡用戶的最終產品。我希望有人明白我想要的東西:)將SQL編碼爲CSV
Postgresql似乎不支持在複製爲csv時轉碼列名稱。我認爲這是你要求的?但是,可以根據需要構造「複製」命令以重命名列。
因此,舉例來說,如果我創建一個表,以便:
[email protected]@[local] =# copy csvtest to stdout with csv header;
id,value
1,Telewizja Polska zawiesiła dzisiejszą emisję programu
你可以把它的數據轉碼到別的東西:
[email protected]@[local] =# set client_encoding = 'iso8859-2';
SET
[email protected]@[local] =# copy csvtest to stdout with csv header;
id,value
1,Telewizja Polska zawiesi�a dzisiejsz� emisj� programu
但是,如果你在一個國家的字符定義的列名:
[email protected]@[local] =# reset client_encoding ;
RESET
[email protected]@[local] =# copy (select id as id, value as "emisję" from csvtest) to stdout with csv header;
id,emisję
1,Telewizja Polska zawiesiła dzisiejszą emisję programu
那麼這些未轉碼:
[email protected]@[local] =# set client_encoding = 'iso8859-2';
SET
[email protected]@[local] =# copy (select id as id, value as "emisję" from csvtest) to stdout with csv header;
id,emisję
1,Telewizja Polska zawiesi�a dzisiejsz� emisj� programu
大概是我作爲COPY命令的一部分發送的UTF-8正在被回顯給我,而沒有被解碼。
那麼,如果我理解得好,這個問題沒有解決方案?! – Z77 2010-06-15 08:07:45