ХакИрФсимагущий
[засикречино]
Кодовки и использоване iconv
Ко мне поступают данные в переменную в разных кодиовках
utf-8
win-1251
мне надо их вывести на экран в кодировке win-1251
Но вот проблема: Если я обрабатываю функцией iconv("UTF-8", "windows-1251", $переменная)
То в одном случае
'/маникюр/' до перекодировки
'/маникюр/' после
В другом
'/маникюр/' до перекодировки
'/' после
А вот тут проблема. Как решить эту проблему?
-~{}~ 08.10.10 21:36:
Решил эту проблему вот так предпологаю, что это говнокод, но альтернативы не нашел пока.((( Но уверен есть более рациональное решение я бы сам написал, но понятия не имею как побайтово можно опрделять кодеровки.
function forwin($s){
$s1=$s;
$s=urlencode($s);
$j=strlen($s);
$k=strlen(str_replace(array("%D0","%D1"),array('',''),strtoupper($s)));
if ($k>0){
$m=$j/$k;
if (($m>1.2)&&($m<2.2)){$s1=iconv("UTF-8", "windows-1251", $s1);}
}
return $s1;
}
Ко мне поступают данные в переменную в разных кодиовках
utf-8
win-1251
мне надо их вывести на экран в кодировке win-1251
Но вот проблема: Если я обрабатываю функцией iconv("UTF-8", "windows-1251", $переменная)
То в одном случае
'/маникюр/' до перекодировки
'/маникюр/' после
В другом
'/маникюр/' до перекодировки
'/' после
А вот тут проблема. Как решить эту проблему?
-~{}~ 08.10.10 21:36:
Решил эту проблему вот так предпологаю, что это говнокод, но альтернативы не нашел пока.((( Но уверен есть более рациональное решение я бы сам написал, но понятия не имею как побайтово можно опрделять кодеровки.
function forwin($s){
$s1=$s;
$s=urlencode($s);
$j=strlen($s);
$k=strlen(str_replace(array("%D0","%D1"),array('',''),strtoupper($s)));
if ($k>0){
$m=$j/$k;
if (($m>1.2)&&($m<2.2)){$s1=iconv("UTF-8", "windows-1251", $s1);}
}
return $s1;
}