2010-06-14 3 views
0

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

ответ

1

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

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

[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 

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

+0

Итак, если я хорошо понял, нет решения по этой проблеме ?! – Z77

Смежные вопросы