Показаны сообщения с ярлыком ISO-8859-5. Показать все сообщения
Показаны сообщения с ярлыком ISO-8859-5. Показать все сообщения

11 июля 2012

Определение кодировки текста в PHP и Python

В очередном проекте, понадобилось мне определить кодировку текста, который возвращался в виде XML. Для определения кодировки я уже достаточно давно использовал очень простую функцию, которую сам и написал. Но по воли случая, её не оказалось под рукой. И какой бы функция простой не была, хоть и знал общий принцип её работы, писать её заново мне совершенно не хотелось. Да, обленился я в край, тут уж ничего не поделаешь. И так как ждать мне не хотелось ещё больше, чем переписывать, я, понятное дело, побежал спрашивать Google, чем он мне может помочь...
Чего я только не нашел в его предложениях! Кто-то мистическим образом пытается определить кодировку через preg_match, ограничиваясь кодировкой UTF-8. Кто-то в разных кодировках "парсит" тома "Война и мир" на двубуквенные совпадения, получая на выходе достаточно массивные файлы, при чем для каждой кодировки - собственный. Кто-то даже добрался до исходников mbstring, так как в какой-то кодировке он возвращал не верный результат! Меня хватил шок от увиденного! Я понял одно, что из найденных вариантов, подобную "залипуху" в свой код я пихать не собираюсь, поэтому решение отложил на следующий день. К тому же, мне по проекту это требовалось для отладочной информации: мог спокойно потерпеть и смотреть на возвращающиеся "зюки" и вопросики. Однако, мысли о том, что нужно поделиться с народом как простым способом определить кодировку без подключения сторонних библиотек, меня подтолкнули на написание данной статьи.