| 
| 
 | Вопрос # 3 074/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Появилась срочная необходимость перевести большое количество файлов из одной кодировки в другую (а именно ANSI TO UTF8). С преобразованием проблем нет, а вот как определить кодировку у текста, чтобы не перекодировать в его в Unicode 2 раза (чушь получается)? Можно урезать вопрос до того, что как различить ANSI и UTF8 программно?
 
|  |   Вопрос задал: Виталий (статус: 2-ой класс)Вопрос отправлен: 7 августа 2009, 21:32
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Виталий!Если файлы были перекодированы в UTF-8 корректно, то распознать можно. Это делается по так называемой BOM сигнатуре. Это три байта в начале - EF BB BF. Если в тексте есть только символы с кодами до 127 включительно и сигнатуры нет, то UTF8 от ANSI (cp1251) отличить нельзя - они идентичны...
 Если же есть кирилические символы, то тут лучше пойти на хитрость - проанализировать входной поток и посмотреть, что там. Если это кирилический текст, то там будет много символов с кодами 0xD0, 0xD1 в диапазоне от 128 до 255. Если это это анси, то там будет много кодов 0xE0 и 0xEE (это буквы а и о, которые наиболее распростанненные в русской языке)
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 8 августа 2009, 00:40
 Оценка за ответ: 5
 Комментарий к оценке: Спасибо! Я нашёл функцию на этом алгоритме. |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |