Помогите разобраться с кодировкой
От: Вульфович Филипп  
Дата: 23.03.10 09:18
Оценка:
У меня есть программа, к которой по TCP приходят некоторые данные,
которые она должна обрабатывать. Есть и русскоязычные данные,
которые посылаются в какой-то кодировке, которая не описана в документации.
Пробовали разные варианты и оказалось, что подходит UTF-8.

Но есть один нюанс.

Если я открываю протокол программы и, допустим, копирую некоторый русский текст в ноутпаде в отдельный файл,
то затем открываю этот файл и он декодируется в читаемый текст. Причем IE автоматически определяет UTF-8.

Но если я вырезаю русский текст FAR'ом то получается файл, который НЕ ДЕКОДИРУЕТСЯ!

Вот файл, который вырезался ноутпадом, он декодируется нормально:
http://files.rsdn.ru/79111/2.txt

Вот файл, который вырезался FAR'ом, он не декодируется:
http://files.rsdn.ru/79111/1.txt

Не могу понять, в чем дело. Выглядят файлы очень похоже, но самое интересное (!) — в FAR'е вообще
эти файлы в просмотровщике выглядят одинаково, только в HEX-режиме видно, что некоторые байты различаются.

Как мог FAR испортить кодировку?
Re: Помогите разобраться с кодировкой
От: SuhanovSergey  
Дата: 23.03.10 09:53
Оценка:
Здравствуйте, Вульфович Филипп, Вы писали:

ВФ>Как мог FAR испортить кодировку?


Не понятно, причём тут .NET.

Я думаю, у вас получилась путаница в режимами DOS/WIN в FAR-е. Может, вы вырезали в режиме DOS, а когда вставляли в новый файл, у вас уже был режим WIN. Или наоборот. Вроде FAR делает какую-то перекодировку в этом случае. Кстати, файлы выглядят одинаково, если они интерпретируются как DOS-кодировка. Если переключится в WIN, то различия видны.
Re: Помогите разобраться с кодировкой
От: glinius  
Дата: 23.03.10 10:44
Оценка:
Far 1.7 не умеет юникод. Попробуйте, может, второй.
Re: Помогите разобраться с кодировкой
От: Мишень-сан  
Дата: 24.03.10 12:11
Оценка:
Здравствуйте, Вульфович Филипп, Вы писали:

ВФ>Как мог FAR испортить кодировку?


Вы перепутали, видимо, CP866 и CP1251.
Возьмите FAR2, он понимает юникод полностью. В редакторе Shift+F8 -> выбираем 65001 — UTF8.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.