Недавно я продемонстрировал, по меткому замечанию kyky, "жгучий баттхерт" к кодировке cp1251.
Сегодня я осознал, кодировка тут непричем, баттхерт вызывают ее поклоники. Сейчас занялся поддержкой чужого сайта запущенного примерно полтора года назад. На cp1251. И несколько месяцев назад, переведенного на использование utf8.
И обнаружил там вот такую функцию...
<?php
function cp1251_to_utf8 ($txt) {
$in_arr = array (
chr(208), chr(192), chr(193), chr(194),
chr(195), chr(196), chr(197), chr(168),
# ... и так до chr(255)
);
$out_arr = array (
chr(208).chr(160), chr(208).chr(144), chr(208).chr(145),
chr(208).chr(146), chr(208).chr(147), chr(208).chr(148),
# ...
);
$txt = str_replace($in_arr,$out_arr,$txt);
return $txt;
}
?>
Я считаю, что мило... Еще раз повторюсь, это код написан в 2011 году.
Комментарии
Что-то не особенно понятно, что этот код демонстрирует? То что разработчики не знают функции iconv? А причем тогда cp1251? Такой код для перевода любой кодировки можно накропать, если его сделают для перевода с utf-8, Вы перестанете любить UTF-8?)
индусам платят за количество строк и символов
Мило.
Вот только сами кодировки здесь ни при чем. Проблема в быдлокодере, который не знал, как выполнить задачу конвертации эффективно.
В России еще много информационных систем, которые требуют на входе данные в кодировке cp1251. Это почти все клиент-банки, платежные системы и тд. Поэтому не думай, что принцип "utf8-only" решит все проблемы.
зы: выложи на говнокод.ру
Да, проблема не в кодировке. Проблема в наблюдаемой корреляции "использование данной кодировки" - "качество кода". Причем системы клиент-банк и платежные системы в эту корреляцию вполне укладываются.
Притом, что сам код я бы не назвал неприемлемым, несмотря на то, что он просто изобилует подобными алгоритмическими решениями. Видно, что у автора ушла куча сил и годы на проработку данного "внутри-студийного CMS".
Причем эта студия точно упоминается в числе пафосных в Н-ске.