Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2013, 12:48   #1
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию CSV с кодировкой UTF-8

Добрый день, уважаемые форумчане!
Возникла необходимость периодически выводить итоги работы файла в csv с кодировкой UTF-8. Просмотрел много материалов по данному вопросу, конечно же видел http://excelvba.ru/code/Encode и http://www.sql.ru/forum/226089/sohra...hl=utf#7997018, пытался подстроить для собственных нужд, но не получается. Либо эти коды не работают с уже готовым csv, либо я что-то не так верстаю. Библиотеку подключил, с этим порядок.
Тыкните носом куда надо или подскажите где еще порыть.
А в принципе возможно ли не перекодировать уже готовый csv, а создавать в нужной кодировке? Из прочитанного понял что нет.
Дайте совет. Заранее спасибо!!!
strannick вне форума Ответить с цитированием
Старый 07.10.2013, 12:58   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Либо эти коды не работают с уже готовым csv, либо я что-то не так верстаю
что-то мне подсказывает, что второе)

Цитата:
А в принципе возможно ли не перекодировать уже готовый csv, а создавать в нужной кодировке?
тоже можно, только не помню, в каком UTF (вроде, в 16-м) файл создастся.

Самый простой способ, - перекодировать уже созданный файл.
Всего одна строка кода:
Код:
' не забываем добавить функцию ChangeFileCharset из http://excelvba.ru/code/Encode
filename$ = "C:\Documents and Settings\Admin\Рабочий стол\sample.csv"
ChangeFileCharset filename$, "utf-8", "windows-1251"
EducatedFool вне форума Ответить с цитированием
Старый 07.10.2013, 13:40   #3
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Ну вот почему всегда так? Ведь делал же почти то же самое
Код:
filename$ = "D:\история_база.csv"
    SourceCharset$ = "Windows - 1251"
    DestCharset$ = "UTF-8"
    ChangeFileCharset filename$, DestCharset$, SourceCharset$
только строка была
Код:
ChangeFileCharset(filename$, DestCharset$, SourceCharset$)
а без скобок прошло. Открыл файл в блокноте, нынешняя кодировка UTF-8. Попробую скормить этот файл сайту.
Спасибо огромное!!!
strannick вне форума Ответить с цитированием
Старый 07.10.2013, 13:50   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
а без скобок прошло.
Ну так скобки нужны лишь если используются операторы сравнения/присвоения. При простом вызове процедуры они не используются
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 07.10.2013, 15:03   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Сравните:
Цитата:
SourceCharset$ = "Windows - 1251"
Цитата:
ChangeFileCharset filename$, "utf-8", "windows-1251"
лишние пробелы тоже не надо ставить
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с UTF-8 кодировкой Levsha100 Общие вопросы Delphi 7 18.07.2013 20:09
Проблемы с кодировкой utf-8 cyclobe PHP 5 06.08.2012 02:33
Как правильно прочитать файл с кодировкой UTF-8 КАРТОВЕДЪ Общие вопросы Delphi 8 08.02.2012 12:31
Проблемы с кодировкой UTF-8 Prontit Общие вопросы Delphi 2 29.07.2011 18:30
Помогите с записью строк в фаил с кодировкой UTF-8 Виталий Серов Общие вопросы Delphi 1 26.03.2009 03:22