Многие сталкиваются с проблемой кодировки и перевода ее с нужной на нужную. Например недавно передомной была задача поменять кодировку с UTF-8 на windows-1251 на php.
Обычно такая задача решается просто, с помощбю функции iconv:
Для того чтобы изменить кодировку с UTF-8 на Windows-1251 нужно написать следующий код:
Перевод кодировки с UTF-8 на Windows-1251
$text = iconv("UTF-8", "Windows-1251", $text)
где текст это Ваш текст в кодировке UTF-8.
Но тут не задача, не у всех установлен модуль iconv.
Для таких случаев один умелец (не знаю кто) написал функцию для перевода кодировки с UTF8 на windows-1251
function utf8win1251($s){
$out = $c1 = "";
$byte2=false;
for ($c=0;$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;
}
//пример
echo utf8win1251('текст в utf-8');
Надеюсь Вам была полезна статья.
Следите за блогом и удачи!