Есть текстовый файл. Как в C++Builder определить в Unicode он
или в ANSI? Как реализовать перевод из Unicode в ANSI ?
22.05.04 02:30: Перенесено модератором из 'C/C++'. adontz (19) в WIN API korzhik (4) в WIN API — ПК
Здравствуйте, EddyDan, Вы писали:
ED>Есть текстовый файл. Как в C++Builder определить в Unicode он или в ANSI?
IsTextUnicode
ED>Как реализовать перевод из Unicode в ANSI ?
WideCharToMultiByte
... << RSDN@Home 1.1.3 stable >>
Здравствуйте, EddyDan, Вы писали:
ED>Есть текстовый файл. Как в C++Builder определить в Unicode он
ED>или в ANSI?
IsTextUnicode

RTFM
ED>>Есть текстовый файл. Как в C++Builder определить в Unicode он
ED>>или в ANSI?
Еж>IsTextUnicode
Еж>
RTFM
Вообще-то эта функция годится для тестировония уже считанной строки, а вопрос был о файле. К тому же
The function uses various statistical and deterministic methods to make its determination
(RTFM

) а для файла есть более надежные методы. Для этого нужно считать первые два байта и если они 0xff 0xfe — то текст записан в Unicode. Если 0xfe 0xff то это Unicode Big Endian, то есть первым идет старший, а затем младший байт. Если же байты другие — то текст ANSI. Правда, такое соглашение не позволяет нам создать файл, начинающийся с "яю", но... скажем спасибо микрософту за такую замечательную кодовую таблицу.
Здравствуйте, SWW, Вы писали:
SWW> Правда, такое соглашение не позволяет нам создать файл, начинающийся с "яю", но... скажем спасибо микрософту за такую замечательную кодовую таблицу.
Скорее состоящий из яю..яю... ибо для юникод текста далее правило тоже

... << RSDN@Home 1.1.2 stable >>
SWW>> Правда, такое соглашение не позволяет нам создать файл, начинающийся с "яю", но... скажем спасибо микрософту за такую замечательную кодовую таблицу.
KGP>Скорее состоящий из яю..яю... ибо для юникод текста далее правило тоже

Не понял. Что значит "далее"? ff fe пишется один раз в начале файла!