Эмулятор функции iconv
Столкнулся с проблемой, что на хостинге криво работает стандартная функция PHP iconv. Пришлось написать эмулятор.
Замена функции iconv:
function Encode($str, $type = 'w'){
// $type:
// 'w' - encodes from UTF to win
// 'u' - encodes from win to UTF
static $conv='';
if (!is_array ( $conv )){
$conv=[];
for ( $x=129; $x <=143; $x++ ){
$conv['utf'][]=chr(209).chr($x);
$conv['win'][]=chr($x+112);
}
for ( $x=144; $x <=191; $x++ ){
$conv['utf'][]=chr(208).chr($x);
$conv['win'][]=chr($x+48);
}
$conv['utf'][]=chr(208).chr(129);
$conv['win'][]=chr(168); // Ё
$conv['utf'][]=chr(209).chr(145);
$conv['win'][]=chr(184); // ё
$conv['utf'][]=chr(209).chr(128);
$conv['win'][]=chr(240); // р
}
if ( $type=='w' )
return str_replace ( $conv['utf'], $conv['win'], $str );
elseif ( $type=='u' )
return str_replace ( $conv['win'], $conv['utf'], $str );
else
return $str;
}
.
Прокомментировать/Отблагодарить