что делать с UTF-8 в CSV-файлах?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

что делать с UTF-8 в CSV-файлах?

Сообщение RusDeveloper » 24.06.2016 16:49:42

использую компонент TfrCSVExport из lrcarioexport 0.9 для экспорта отчетов из LazReport в CSV. эспортируется нормально, но кодировка в CSV-файле UTF-8. как результат: в MS Excel открывается кракозябра, в LibreOffice приходится выбирать кодировку UTF-8. в то время как с другими экслевскими файлами таких проблем нет. Вопрос: можно ли сразу экспортировать в CSV с такой же кодировкой, которая используется по умолчанию для подобных файлов?
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Снег Север » 24.06.2016 18:57:27

Это какой седой древности MS Excel не открывает CSV в UTF-8??? Как минимум, с 2007 открывает без проблем.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Лекс Айрин » 24.06.2016 18:58:38

Снег Север
некоторые до сих пор в 2003 сидят -- не любят риббоны.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: что делать с UTF-8 в CSV-файлах?

Сообщение RusDeveloper » 24.06.2016 19:09:02

Эксель - только на просмотр, т.е. лицензионный, но никем не зарегистрирован
Последний раз редактировалось RusDeveloper 24.06.2016 19:11:14, всего редактировалось 1 раз.
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: что делать с UTF-8 в CSV-файлах?

Сообщение SSerge » 24.06.2016 19:10:08

Снег Север писал(а):открывает без проблем


ну так надо ж задать в дополнительных параметрах кодировку, а иначе откроет в cp1251, если напрямую не задано. Кнопочка (или что там - checkpoint - давненько экселя не видел) не всем по глазам на самом деле.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: что делать с UTF-8 в CSV-файлах?

Сообщение RusDeveloper » 24.06.2016 19:13:02

вопрос был не про кнопочки в Экселе или в другом каком-то офисе, а про экспорт в CSV. прочтите первое мое сообщение
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Снег Север » 24.06.2016 19:15:54

SSerge писал(а):
Снег Север писал(а):открывает без проблем
ну так надо ж задать в дополнительных параметрах кодировку, а иначе откроет в cp1251, если напрямую не задано. Кнопочка (или что там - checkpoint - давненько экселя не видел) не всем по глазам на самом деле.
2010-й открывает нормально безо всяких кнопочек. Только что проверял. Более древнего у меня просто нет.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47

Re: что делать с UTF-8 в CSV-файлах?

Сообщение SSerge » 24.06.2016 19:21:09

RusDeveloper
Версия компонента 0.9, писал его поди какой-нибудь американец, никакого представления о кодировках там скорее всего нет.
Точнее скажет только исходный код компонента.
Скорее всего окажется - что никак. В чем создана строка, так и пишется.
А кроме того, может еще и разница в поведении быть, зависящая от версии лазаруса и от компилятора, на котором она базируется.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: что делать с UTF-8 в CSV-файлах?

Сообщение pupsik » 24.06.2016 22:11:47

CSV <> другими экслевскими файлами. Это импортируемый файл.
Если не ошибаюсь то в момент импорта в 2003 офисе есть выбор кодировки. Да и в ранних версиях. Как и в поздних.
Есть два варианта:
1. Попробовать как поведёт себя lrSpreadSheetExport;
2. Написать своё (или добавить возможность выбора кодировки в существующий).
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: что делать с UTF-8 в CSV-файлах?

Сообщение alexs » 25.06.2016 20:36:56

А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport). Там и форматирование сохранится, и красивости, и картинки...
И если что то не так будет - вопросы задать можно
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Deimos » 25.06.2016 23:41:26

ответ по существу. кросс. не изящен, но работает

Код: Выделить всё
procedure save_grid_to_csv(grid: tstringgrid; path: string);
var
   csv:tstringlist;
begin
  Grid.SaveToCSVFile(path,';');
  {$IFDEF MSWindows}
  csv:=tstringlist.Create;
  csv.LoadFromFile(path);
  csv.Text:=utf8toAnsi(csv.Text);
  csv.SaveToFile(path);
  csv.Free;
  {$ENDIF}
end;


P.S. Уоточнюсь - так решая для другого компонента. Думаю переделать труда не составит.... Если составит - пишите в личку - постараюсь помочь совсем предметно )))
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

Re: что делать с UTF-8 в CSV-файлах?

Сообщение RusDeveloper » 27.06.2016 11:37:18

alexs писал(а):А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport). Там и форматирование сохранится, и красивости, и картинки...
И если что то не так будет - вопросы задать можно

вопросы уже есть :) создал отдельную тему...

Добавлено спустя 3 минуты 47 секунд:
вот тема про lrSpreadSheetExport:
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=11188
для установки данного пакета нужен пакет lazreport 0.9.9, а для последнего нужен пакет Printer4Lazarus 0.5, который я и не могу установить...

Добавлено спустя 1 минуту 34 секунды:
по CSV всем спасибо, буду думать...
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Sharfik » 27.06.2016 12:21:37

Снег Север писал(а):2010-й открывает нормально безо всяких кнопочек. Только что проверял. Более древнего у меня просто нет.

Вчера игрался с 2010. Если расширение csv - открывает автоматом думая что кодировка ANSI, если расширение txt - спрашивает какая кодировка и какие разделители у колонок.
alexs писал(а):А почему вообще CVS? Есть же вроде нормальный экспортер в электронные таблицы (lrSpreadSheetExport).

csv удобный формат очень, если просто таблицами обменяться надо между разными программами или заполнить какие то каталоги.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 760
Зарегистрирован: 20.07.2013 01:04:30

Re: что делать с UTF-8 в CSV-файлах?

Сообщение alexs » 27.06.2016 23:44:03

Sharfik писал(а):csv удобный формат очень, если просто таблицами обменяться надо между разными программами или заполнить какие то каталоги.

Вот только генерить его в LazReport-е - не очень. Там нет гарантии его стабильности. Надо извращаться над отчётом.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: что делать с UTF-8 в CSV-файлах?

Сообщение Снег Север » 28.06.2016 08:35:30

Sharfik писал(а):Вчера игрался с 2010. Если расширение csv - открывает автоматом думая что кодировка ANSI, если расширение txt - спрашивает какая кодировка и какие разделители у колонок.

Я делал в Notepad++ UTF8 текстовый файл, содержавший принципиально разные кодировки - русский и иврит, например, сохранял как csv, и открывал в 2010-м экселе. Открывалось без вопросов и в правильном отображении.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru