Добрый день. Возникла такая проблема. Я получаю от скрипта, который дергает с email'a вот такой текст вот что там написано изначально в заголовке сказано - Content-Type: text/html; charset="koi8-r", но не получается у меня перевести это из кои8 в win1251. Штирлиц переводит)) а мне нужно средствами php перевести и дальше потом со строкой работать) Кто подскажет, как это лечить?
Файл в кодировке KOI8-R. Написал спешл фор юу =) PHP: <?php // Это KOI8-R документ header('content-type: text/plain; charset=koi8-r'); // Строка с текстом $encoded = '[=CD=C1=D2=CB=C1]MersedesBenz[/=CD=C1=D2=CB=C1] [=CD=CF=C4=C5=CC=D8]E210[/=CD=CF=C4=C5=CC=D8] [=C7=CF=C4]1997[/=C7=CF=C4] [=C4=D7=C9=C7=C1=D4=C5=CC=D8]=C2=C5=CE=DA=C9=CE[/=C4=D7= =C9=C7=C1=D4=C5=CC=D8] [=CF=C2=D8=C5=CD=C4]3,2[/=CF=C2=D8=C5=CD=C4]= [=D0=D2=CF=C2=C5=C7]81000[/=D0=D2=CF=C2=C5=C7] [=C4=C1=D4=C1=D0=D2=C9=C2]=D0=D2=C9=C2=D9=CC[/=C4=C1=D4= =C1=D0=D2=C9=C2] [=C3=C5=CE=C1]124.422[/=C3=C5=CE=C1] [=D3=D4=C1=D4=D5=D3]=D0=D2=CF=C4=C1=C5=D4=D3=D1[/=D3=D4= =C1=D4=D5=D3] [=CB=CF=CD=CD=C5=CE=D4=C1=D2=C9=C9] = [/=CB=CF=CD=CD=C5=CE=D4=C1=D2=C9=C9]'; // Собственно рассчеты if(preg_match_all('/\=([A-F0-9]{2}?)/s', $encoded, $charList)) { foreach($charList[1] as $hex) { $encoded = str_replace(('=' . $hex), chr(hexdec($hex)), $encoded); } } // Смотрим, что вышло print_r($encoded); ?>
Возможен, в принципе, немного более упрощенный вариант с модификатором е: PHP: <?php $encoded = preg_replace('/\=([A-F0-9]{2}?)/es', 'chr(hexdec("$1"))', $encoded); ?> Где $encoded - та самая строка. Правда тебе прийдется подчистить пробелы и обозначения пустых строк, но тут ничего сложного нет. Спавишься с этим самостоятельно?
Я конечно всё понимаю, но когда человек совсем не читает, что я пишу, мне это начинает не нравиться Отправляется заголовок и файл в ПРАВИЛЬНОЙ кодировке.