Admin'у ...

Сообщение от
Saku
Работа не архи-сложная, готов помочь советом и делом.
Случайно подумалось
Есть более простое решение - не форум переводить в UTF-8, а наоборот получаемые заголовки переводить из UTF-8 в CP1251. Бегло посмотрел в инете, нашел несложный код:
PHP код:
<php
function utf8_to_cp1251($s)
{
if ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8")
{
for ($c=0;$c<strlen($s);$c++)
{
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2)
{
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025)
{
$out_i=168;
} else {
if ($new_i==1105)
{
$out_i=184;
} else {
$out_i=$new_i-848;
}
}
$out.=chr($out_i);
$byte2=false;
}
if (($i>>5)==6)
{
$c1=$i;
$byte2=true;
}
}
return $out;
}
else
{
return $s;
}
}
?>
Для его подключения нужна только поддержка библитотеки iconv в php, установленном на сервере. Использование функции - проще пареной репы: в том шаблоне (или библиотечном файле) движка форума, где обрабатывается тег URL - полученный заголовок линка просто прогнать через указанную выше функцию. Естественно, функцию нужно вписать в начало шаблона (или в библиотечный файл). Мне кажется это самое "дешевое" по усилиям решение.
Если поддержки iconv нет, могу поискать (или попробовать самому написать) функцию-транслятор без указанной библиотеки.
Естественно, если все же это нужно не мне одному ...
Социальные закладки