|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.05.2011, 00:50 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Перекодировать файл в UTF-8->ANSI, ANSI -> UFT-8
Доброго времени!
Собственно вопрос как распознать кодировку файла(ansi, utf-8)? как перекодировать файл из ansi в UFT-8 и наоборот? Чем отличается кодировка utf-8 от uft-8 без метки BOM? |
19.05.2011, 02:40 | #2 |
Форумчанин
Регистрация: 02.01.2010
Сообщений: 254
|
почитай http://stackoverflow.com/questions/4...-ansi-vs-utf-8
возможно, что-то окажется полезным |
19.05.2011, 03:07 | #3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,594
|
http://programmersforum.ru/showthread.php?p=78214
Узнать кодировку файла можно по первум двум или трём байтам. обычно там указана кодировка. |
19.05.2011, 14:10 | #4 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
для перекодирвки вроде есть функции AnsiToUtf8() Utf8ToAnsi()
различие между кодирвками с bom или без, отличается наличием этого бум, сигнатуры (вроде 3 байта) в начале файла, если не изменяет память $ef $bb $bf (это для utf8)
Могу лишь пнуть в нужном направлении (ну или как получится)
|
19.05.2011, 15:11 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
окей... в UTF8(вместе с BOM) стабильно первые 3 байта это:
Код:
|
19.05.2011, 16:14 | #6 |
Форумчанин
Регистрация: 26.01.2010
Сообщений: 215
|
только методом предположения, допустим имеем русский текст анализируем весь текст ищем расширенные символы (те что по два байта) если первый байт в диапазоне $40..$47 то это русская таблица, дальше анализируем если все символы текста попадают в эту русскую таблицу или латинскую таблицу (она занимает 1 байт $00..$7f) то делаем вывод что текст в юникоде, если же часто встречаются "чужие" таблицы или данные слишком часто перемеживаются то делаем вывод что данные записаны в ANSI кодировке, ну вот как то так
Могу лишь пнуть в нужном направлении (ну или как получится)
|
19.05.2011, 18:35 | #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++ легко решает любые не существующие в Паскале проблемы.
|
|
19.05.2011, 18:47 | #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 |