Здравствуйте!
Недавно я попробовал встроить в свою программу чтение информации из файла .txt и столкнулся с тем, что при этом нормально читаются только символы ASCII. Между тем, при всех других операциях со строковыми переменными, не связанных с файлами, символы Юникода воспринимаются без проблем. Теперь я пытаюсь выяснить: имеет ли смысл добиваться нужного чтения юникодовских символов из файла, или этого не получится добиться на VBA?
Если я правильно понимаю проблему, то можно попробовать воспользоваться vbFromUnicode для перекодировки на лету, так сказать.
А сами текстовые файлы в какой кодировке — utf-8 или восьмибитной? Скорее всего, проблема в несоответствии кодировки файла и кодировки по умолчанию, используемой в VBA при чтении с файла. Что получается вместо нечитаемых символов — ромбики со знаком вопроса (чтение 8-битной кодировки как utf-8), или поток двухбуквенных комбинаций (чтение utf-8 как 8-битной)?
Здравствуйте!
Цитата: Cruach от ноября 9, 2013, 22:42
Если я правильно понимаю проблему, то можно попробовать воспользоваться vbFromUnicode для перекодировки на лету, так сказать.
Интересно! А где именно это свойство (или аргумент?) указывается?
Цитата: Python от ноября 10, 2013, 17:16
А сами текстовые файлы в какой кодировке — utf-8 или восьмибитной? Скорее всего, проблема в несоответствии кодировки файла и кодировки по умолчанию, используемой в VBA при чтении с файла. Что получается вместо нечитаемых символов — ромбики со знаком вопроса (чтение 8-битной кодировки как utf-8), или поток двухбуквенных комбинаций (чтение utf-8 как 8-битной)?
Результат зависит от того, в какой кодировке я сохраняю исходный читаемый файл .txt: в том порядке, как Вы перечислили, знаки вопроса (без ромбиков) получаются при кодировке ANSI (в вопросе я ошибочно написал ASCII), а двухбуквенные комбинации - при кодировках UTF-8, Unicod.
Знаки вопроса на месте символов юникода появляются, скорее всего, еще при сохранении файла в ansi-кодировке — она непригодна для символов, не входящих (в случае русской локали) в windows-1251 — т.е., всех кроме основной латиницы и современных славянских кириллиц (если я правильно понял, знаки вопроса на месте русских букв не появляются?).
Цитата: Марбол от ноября 9, 2013, 21:28или этого не получится добиться на VBA?
Всё можно сделать, знать бы только, что же вы хотите сделать и с чем.
Все, кто пытался Вам помочь, пытаются это угадать.
Для начала заметим, что в файле вообще никаких символов нет. Символы это уже ваша интерпретация содержимого байтов файла.
Здравствуйте!
Я думал привести текст своей программы, в которой читается текст из файла, но в итоге решил не добиваться корректного чтения символов Юникода и ограничился тем, чт доступно при кодировке ANSI.