В очередной раз iconv выругался на какой то неправильный символ и отказался перекодировать файл из utf-8 в windows-1251. Не помогло //ignore.
Поскольку с проблемой уже сталкивался, нашел в мануалах простенькое решение, слегка сократил и доработал напильником привел в соответствие своим стандартам кодирования.
Решение выкладываю.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function Utf2Win($s){ return Utf8($s,'w') ; } function Win2Utf($s){ return Utf8($s,'u') ; } function Utf8($s, $sTo = 'utf2win'){ $a = array(); for ($i=128; $i <= 191; $i++){ $a['utf'][] = ($i<144) ? chr(209).chr($i) : chr(208).chr($i); $a['win'][] = ($i<144) ? chr($i + 112) : chr($i + 48) ; } $a['utf'][] = chr(208) . chr(129); $a['win'][] = chr(168); $a['utf'][] = chr(209) . chr(145); $a['win'][] = chr(184); if(in_array(strtolower($sTo), array('utf2win','w','cp1251','windows-1251'))) return str_replace($a['utf'], $a['win'], $s); if(in_array(strtolower($sTo), array('win2utf','u','utf8','utf-8'))) return str_replace($a['win'], $a['utf'], $s); } |
Свежие комментарии