- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
function utf8ToCp1251($s,$type="w") {
if ((is_string($s) && strlen($s)>0) && ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8")) {
$out="";
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 им не знаком...