![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Доброго времени!
Собственно вопрос как распознать кодировку файла(ansi, utf-8)? как перекодировать файл из ansi в UFT-8 и наоборот? Чем отличается кодировка utf-8 от uft-8 без метки BOM? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
![]()
почитай http://stackoverflow.com/questions/4...-ansi-vs-utf-8
возможно, что-то окажется полезным |
![]() |
![]() |
![]() |
#3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,655
|
![]()
http://programmersforum.ru/showthread.php?p=78214
Узнать кодировку файла можно по первум двум или трём байтам. обычно там указана кодировка. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
![]()
для перекодирвки вроде есть функции AnsiToUtf8() Utf8ToAnsi()
различие между кодирвками с bom или без, отличается наличием этого бум, сигнатуры (вроде 3 байта) в начале файла, если не изменяет память $ef $bb $bf (это для utf8)
Могу лишь пнуть в нужном направлении (ну или как получится)
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
окей... в UTF8(вместе с BOM) стабильно первые 3 байта это:
Код:
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
![]()
только методом предположения, допустим имеем русский текст анализируем весь текст ищем расширенные символы (те что по два байта) если первый байт в диапазоне $40..$47 то это русская таблица, дальше анализируем если все символы текста попадают в эту русскую таблицу или латинскую таблицу (она занимает 1 байт $00..$7f) то делаем вывод что текст в юникоде, если же часто встречаются "чужие" таблицы или данные слишком часто перемеживаются то делаем вывод что данные записаны в ANSI кодировке, ну вот как то так
Могу лишь пнуть в нужном направлении (ну или как получится)
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Ссылки для чтения: http://msdn.microsoft.com/en-us/libr...72(VS.85).aspx http://docwiki.embarcadero.com/RADSt...rsion_Routines http://www.transl-gunsmoker.ru/2010/...xtunicode.html http://www.transl-gunsmoker.ru/2010/...g-post_10.html http://www.transl-gunsmoker.ru/2010/12/unicode_16.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
![]()
еще поправочка
Код:
Могу лишь пнуть в нужном направлении (ну или как получится)
Последний раз редактировалось Swarog; 19.05.2011 в 18:50. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как конвертнуть файл ANSI to UCS2(LE) | MakTpaxep | Общие вопросы C/C++ | 1 | 18.02.2011 17:57 |
Ansi в UTF-8 и наоборот UTF-8 в Ansi | Alar | Работа с сетью в Delphi | 3 | 09.12.2010 17:02 |
Работа с ANSI и UTF-8 | Farrel | Visual C++ | 2 | 22.09.2010 23:00 |
Как можно пересохранить текстовый файл в кодировке ANSI? | Velross | Общие вопросы Delphi | 1 | 11.12.2009 18:26 |
ANSI | HunterMan | Win Api | 2 | 18.04.2008 23:17 |