Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Работа с MS Office > КОдировка при сохранении в CSV


Автор: emptyby 13.2.2007, 11:04
ПРиветствую.
Проблема в следующем: есть excel файл с французскими символами. При сохранении его в CSV (MS-DOS), эти символы заменяются знаком вопроса (?). Как сделать, чтобы они не заменялись? То бишь, как сохранить в Юникоде? smile Долго  smile искал в гугле, у многих людей такая проблема, но так решения и не нашёл. Облазил Ворд, но так и не нашёл, как перевести документ в Unicode.

 smile  smile  smile 

Автор: AsIs 13.2.2007, 11:41
Боюсь, что тут сложно что-то сделать используя только стандартные средства.
В описании формата CSV (которое никак не связано с Excel, т.к. независимо от программ вообще) сказано, что придуман он давным давно и пожжерживает обычную кодировку ASCII (т.е. всего 256 символов). Однако, указывается, что можно применять и другие кодировки, типа UTF-8, UTF-16 , в самом стандарте никаких жестких ограничений по этому поводу нет. НО! Тогда могут возникнуть проблемы в приложениях, которые этот файл будут читать. Как они поймут кодировку - префикса никакого не предусмотрено. Если только вручную указывать, при открытии файла.
Об этом тут:
http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm#CSVAndEncodings
и тут:
http://tools.ietf.org/html/rfc4180

У самого же MS написано, что список конвертеров зависит от того, сколько их установлено. И по умолчанию есть конвертеры только для CSV ASCII (с кодировкой Windows и MS DOS).
http://office.microsoft.com/ru-ru/excel/HP052001571049.aspx
Может Вам удасться найти уже написанный кем-то конвертер для CSV UNICODE ? ;)

Можно конечно пытаться сохранять данные в обычном файле txt формата Unicode, а потом программным образом заменять все пробелы между колонками на запятые, т.е. напильником это доводить до ума...

Добавлено @ 11:44 
Уже написав ответ, подумал. Если у Вас на рабочем листе есть только английский и французский текст, то может и получится. Сохраняйте в обычном CSV, только предварительно не забудьте региональные установки поменять на французские.

Автор: emptyby 13.2.2007, 12:32
Спасибо за ответ.
Когда я пытаюсь сохранить файл в формате TXT с Unicode, Excel выводит алерт "file.txt может содержать возможности, несовместимые с Текст Юникод." Ок, сохраняю. Файл сохранился и символы мои любимые остались. Но, как Вы и сказали, пропали точки с запятыми (разделители).
Неужели придётся ещё и и спробелами возиться?  smile Я этот парсер для CSV полдня писал smile Документ по F3-просмотру представляет не очень красивую картину...


Цитата

Может Вам удасться найти уже написанный кем-то конвертер для CSV UNICODE ? ;)

Вчеа бегло пробежался, но ничего не нашёл... Сейчас попробую повнимательнее. Просто мне нужно минимизировать действия работника и, соответственно, постараться упростить задачу до:
- выбрать файл;
- нажать кнопку Импортировать.

Буду искать PHP-конвертер...

Автор: AsIs 13.2.2007, 12:39
Цитата(emptyby @ 13.2.2007,  12:32)
 Но, как Вы и сказали, пропали точки с запятыми (разделители).
Неужели придётся ещё и и спробелами возиться?  smile 

Ну дык, об этом я и толкую.
Ну можно попробовать написать программку, которая пробелы заменяет на запятые. smile

Автор: emptyby 13.2.2007, 12:43
smile Можно-то можно и это не проблема. Только ведь у меня данные в таблицах не из одного слова состоят... Русский язык богатый smile

Добавлено @ 12:44 
Хотя... Хм, тут, если не ошибаюсь, точка с запятой заменены на табуляцию... smile Появилась надежда..

Автор: AsIs 13.2.2007, 13:03
Цитата(emptyby @ 13.2.2007,  12:43)
smile Можно-то можно и это не проблема. Только ведь у меня данные в таблицах не из одного слова состоят... Русский язык богатый smile

Это я догадываюсь. А кто сказал, что будет легко? smile
Хотя может быть все проще... Попробуем подождать еще ответов...

Автор: mihanik 13.2.2007, 14:32
Можно ещё попробовать текстовый редактор Golden Pen - http://www.delphist.com/GoldenPen.html
Абсолютно бесплатный.

Открыть файл этим редактором, переконвертировать ( F11, по-моему ), сохранить как надо...

Хотя...
Кажется это из другой оперы...

Автор: AsIs 13.2.2007, 15:11
Цитата(mihanik @ 13.2.2007,  14:32)
Можно ещё попробовать текстовый редактор Golden Pen - http://www.delphist.com/GoldenPen.html
Абсолютно бесплатный.

Открыть файл этим редактором, переконвертировать ( F11, по-моему ), сохранить как надо...

Хотя...
Кажется это из другой оперы...

Нее. Не получится.
Если в таблице Excel текст на трех языках, то при сохранении в кодировке ASCII информация теряется. Никакая конвертация не поможет. Просто потому, что так устроена кодировка.
А если сохранить в формате txt Unicode, то нужна не конвертация, а преобразование файла, т.е. замена всех пробелов на запятые и т.п.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)