функция iconv
функция iconv что то не помогает, может я ее не правильно использую?
Код:
iconv("DOS","windows-1251",$str);
в скрипте стоит:
Код:
<html>
<head>
<title>script</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
<head>
<title>script</title>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
Код:
//$text - input text in windows-1251
//$cout - output text in 866 (cp866, dos ru ascii)
for($i=0;$i<strlen($text);$i++) {
$ord=ord($text[$i]);
if($ord>=192&&$ord<=239) $cout.=chr($ord-64);
elseif($ord>=240&&$ord<=255) $cout.=chr($ord-16);
elseif($ord==168) $cout.=chr(240);
elseif($ord==184) $cout.=chr(241);
elseif($ord==185) $cout.=chr(252);
elseif($ord==150||$ord==151) $cout.=chr(45);
elseif($ord==147||$ord==148||$ord==171||$ord==187) $cout.=chr(34);
elseif($ord>=128&&$ord<=190) $i=$i; //нет представления данному символу
else $cout.=chr($ord);
}
//$cout - output text in 866 (cp866, dos ru ascii)
for($i=0;$i<strlen($text);$i++) {
$ord=ord($text[$i]);
if($ord>=192&&$ord<=239) $cout.=chr($ord-64);
elseif($ord>=240&&$ord<=255) $cout.=chr($ord-16);
elseif($ord==168) $cout.=chr(240);
elseif($ord==184) $cout.=chr(241);
elseif($ord==185) $cout.=chr(252);
elseif($ord==150||$ord==151) $cout.=chr(45);
elseif($ord==147||$ord==148||$ord==171||$ord==187) $cout.=chr(34);
elseif($ord>=128&&$ord<=190) $i=$i; //нет представления данному символу
else $cout.=chr($ord);
}
ЗЫ. Имхо, извращение, и медленно, но как говорится, выбирать вам
в юолее-менее свежих версиях утилиты iconv есть ключик, ЕМНИП -c, указав который, можно заставить iconv не вываливаться при "встрече" с непонятным символом. может и для функции какой параметр есть?
Код:
iconv("cp866","windows-1251",$str);
а это ззначения всех кодировок:
Код:
Арабский (dos) DOS - 720
Арабский (ISO) iso-8859-6
Арабский (Mac) x-mac-arabic
Арабский (Windows) windows-1256
Балтийские языки (DOS) ibm775
Балтийские языки (ISO) iso-8859-4
Греческий (DOS) ibm737
Греческий (ISO) iso-8859-7
Греческий (Mac) x-mac-greek
Греческий (Windows) windows-1252
Греческий современный (DOS) ibm869
Европейский языки x-Europa
Западноевропейские языки (DOS) ibm850
Западноевропейские языки (ISO) iso-8859-1
Западноевропейские языки (Mac) macintosh
Западноевропейские языки (Windows) windows-1252
Кириллица (DOS) cp866
Кириллица (ISO) iso-8859-5
Кириллица (KOI8-R) koi8-r
Кириллица (KOI8-U) koi8-u
Кириллица (Mac) x-mac-cyrillic
Кириллица (Windows) windows-1251
Турецкий (DOS) ibm857
Турецкий (ISO) iso-8859-9
Турецкий (Mac) x-mac-turkish
Турецкий (Windows) windows-1254
Арабский (ISO) iso-8859-6
Арабский (Mac) x-mac-arabic
Арабский (Windows) windows-1256
Балтийские языки (DOS) ibm775
Балтийские языки (ISO) iso-8859-4
Греческий (DOS) ibm737
Греческий (ISO) iso-8859-7
Греческий (Mac) x-mac-greek
Греческий (Windows) windows-1252
Греческий современный (DOS) ibm869
Европейский языки x-Europa
Западноевропейские языки (DOS) ibm850
Западноевропейские языки (ISO) iso-8859-1
Западноевропейские языки (Mac) macintosh
Западноевропейские языки (Windows) windows-1252
Кириллица (DOS) cp866
Кириллица (ISO) iso-8859-5
Кириллица (KOI8-R) koi8-r
Кириллица (KOI8-U) koi8-u
Кириллица (Mac) x-mac-cyrillic
Кириллица (Windows) windows-1251
Турецкий (DOS) ibm857
Турецкий (ISO) iso-8859-9
Турецкий (Mac) x-mac-turkish
Турецкий (Windows) windows-1254