Кодирование в SQL в CSV - PullRequest
       6

Кодирование в SQL в CSV

0 голосов
/ 14 июня 2010

Когда я выполняю запрос COPY TO ... CSV, я создаю файл CSV.Но при открытии столбца с именами в Excel, которые должны быть с национальными символами, не так, как должно бытьПоэтому мой вопрос: возможно ли в запросе sql изменить эту кодировку на utf8?Или что-то другое?Потому что я хочу, чтобы этот новый созданный файл CSV стал конечным продуктом для пользователей в Интернете.Я надеюсь, что кто-то понял, что я хочу:)

1 Ответ

1 голос
/ 14 июня 2010

Postgresql, похоже, не поддерживает транскодирование имен столбцов при копировании в формате csv. Я думаю, это то, что вы просите? Однако вы можете структурировать команду «copy» для переименования столбцов по мере необходимости.

Так, например, если я создаю таблицу так:

steve@steve@[local] =# copy csvtest to stdout with csv header;
id,value
1,Telewizja Polska zawiesiła dzisiejszą emisję programu 

Вы можете сделать так, чтобы он перекодировал данные во что-то другое:

steve@steve@[local] =# set client_encoding = 'iso8859-2';
SET
steve@steve@[local] =# copy csvtest to stdout with csv header;
id,value
1,Telewizja Polska zawiesi�a dzisiejsz� emisj� programu 

Но если вы определяете имена столбцов в национальных символах:

steve@steve@[local] =# reset client_encoding ;
RESET
steve@steve@[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 

Тогда они не транскодируются:

steve@steve@[local] =# set client_encoding = 'iso8859-2';
SET
steve@steve@[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 

Предположительно, UTF-8, который я посылаю как часть команды COPY, просто возвращается ко мне без декодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...