Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Юникод [D7, XP]


AlexanderMS ©   (2006-05-15 19:56:00) 

Скажите, пожалуйста, как представлены символы в формате Юникод? Я знаю, что двумя байтами и что латинская буква в Юникоде представлена тем же байтом, да + нулевой. Но с русским иначе. Мне нужно считать строку в кодировке Юникод из файла, используя TFileStream. Как это сделать? Заранее спасибо.


AlexanderMS   (2006-05-15 20:48:00) [1]

[5]
Не подумайте, что нашёл ответ, вопрос остался.


AlexanderMS   (2006-05-15 20:48:00) [2]

[5]
Не подумайте, что нашёл ответ, вопрос остался.


AlexanderMS   (2006-05-15 20:42:00) [3]

Шпиён   (15.05.06 20:34) [3]

Спасибо за ссылку!


AlexanderMS   (2006-05-15 20:41:00) [4]

Я не знаю, какая кодировка в файле. Он - смешанный: часть - обычная, часть - с двумя байтами. Вот с двумя, так выглядит в текстовом редакторе:

1я0я)я7я7яЯя7я<я/я$я

Через XOR 255 и удаления ненужного получается:

ОПЦИИ ИГРЫ

Вот другая разновидность (файл другой версии):

быаыЩызызыЯязымыЯыФы

Должно получится то же самое, но заставить программу расшифровать не могу. Это - часть CSF файла, языкового файла игры Generals. Я создаю редактор файлов этого формата. Одни файлы читает, другие нет.

Это что за кодировка?


Шпиён   (2006-05-15 20:34:00) [5]

Для общего развития -)
http://ru.wikipedia.org/wiki/Unicode

Для пратического применения F1:
Utf8ToAnsi
WideChar, WideString
WideCharToString
WideCharLenToString


AlexanderMS   (2006-05-15 20:14:00) [6]

Спасибо. А если это - UTF-8?


palva   (2006-05-15 20:12:00) [7]

Если это действительно UNICODE, а не UTF-8, то так и читайте: по два байта, укладывая каждую пару в символ PChar. В первых двух байтах файла находится служебная информация, которая говорит о том, в каком порядке идут байты в каждой паре, LittleEndian или BigEndian.


Наверх

Титульная страница Поиск, карта сайта Написать письмо