PHP: Перекодировка текста
От: Toomany S. Россия http://ip.ru
Дата: 16.12.03 10:08
Оценка:
Имеется следующая задача:
Есть строка вида %D1%88%D1%83%D0%BB%D1%8C%D0%B3%D0%B8%D0%BD;
Расшифровывается, как "шульгин".
Необходимо её перекодировать в CP-1251.
Собсно, сделав по строке urldecode() получаем таки-да, строчку в UTF-8.
А дальше?

Мой, преисполненный трудов и геморроя, путь привёл меня к следующему:

$string=str_replace('%D0','',$string);
$string=urldecode($string);
$string=utf8_decode ($string);
$string=convert_cyr_string($string,'i','w');


В результате полчаю "??Л?Г?Н".


Помогите, кто может
Re: PHP: Перекодировка текста
От: deadem Россия  
Дата: 16.12.03 10:23
Оценка:
Здравствуйте, Toomany S., Вы писали:

TS>Имеется следующая задача:

TS>Есть строка вида %D1%88%D1%83%D0%BB%D1%8C%D0%B3%D0%B8%D0%BD;
TS>Расшифровывается, как "шульгин".
TS>Необходимо её перекодировать в CP-1251.
TS>Собсно, сделав по строке urldecode() получаем таки-да, строчку в UTF-8.

TS>В результате полчаю "??Л?Г?Н".


хххех...

function utf2win ($string) {
    $utf = array(   "/\xD0\xB0/", "/\xD0\xB1/", "/\xD0\xB2/", "/\xD0\xB3/",
                    "/\xD0\xB4/", "/\xD0\xB5/", "/\xD1\x91/", "/\xD0\xB6/",
                    "/\xD0\xB7/", "/\xD0\xB8/", "/\xD0\xB9/", "/\xD0\xBA/",
                    "/\xD0\xBB/", "/\xD0\xBC/", "/\xD0\xBD/", "/\xD0\xBE/",
                    "/\xD0\xBF/", "/\xD1\x80/", "/\xD1\x81/", "/\xD1\x82/",
                    "/\xD1\x83/", "/\xD1\x84/", "/\xD1\x85/", "/\xD1\x86/",
                    "/\xD1\x87/", "/\xD1\x88/", "/\xD1\x89/", "/\xD1\x8A/",
                    "/\xD1\x8B/", "/\xD1\x8C/", "/\xD1\x8D/", "/\xD1\x8E/",
                    "/\xD1\x8F/", "/\xD0\x90/", "/\xD0\x91/", "/\xD0\x92/",
                    "/\xD0\x93/", "/\xD0\x94/", "/\xD0\x95/", "/\xD0\x81/",
                    "/\xD0\x96/", "/\xD0\x97/", "/\xD0\x98/", "/\xD0\x99/",
                    "/\xD0\x9A/", "/\xD0\x9B/", "/\xD0\x9C/", "/\xD0\x9D/",
                    "/\xD0\x9E/", "/\xD0\x9F/", "/\xD0\xA0/", "/\xD0\xA1/",
                    "/\xD0\xA2/", "/\xD0\xA3/", "/\xD0\xA4/", "/\xD0\xA5/",
                    "/\xD0\xA6/", "/\xD0\xA7/", "/\xD0\xA8/", "/\xD0\xA9/",
                    "/\xD0\xAA/", "/\xD0\xAB/", "/\xD0\xAC/", "/\xD0\xAD/",
                    "/\xD0\xAE/", "/\xD0\xAF/");

    $win = array(   "\xE0","\xE1",
                    "\xE2","\xE3","\xE4","\xE5","\xB8","\xE6","\xE7","\xE8",
                    "\xE9","\xEA","\xEB","\xEC","\xED","\xEE","\xEF","\xF0",
                    "\xF1","\xF2","\xF3","\xF4","\xF5","\xF6","\xF7","\xF8",
                    "\xF9","\xFA","\xFB","\xFC","\xFD","\xFE","\xFF","\xC0",
                    "\xC1","\xC2","\xC3","\xC4","\xC5","\xA8","\xC6","\xC7",
                    "\xC8","\xC9","\xCA","\xCB","\xCC","\xCD","\xCE","\xCF",
                    "\xD0","\xD1","\xD2","\xD3","\xD4","\xD5","\xD6","\xD7",
                    "\xD8","\xD9","\xDA","\xDB","\xDC","\xDD","\xDE","\xDF");
    
    return preg_replace($utf, $win, $string);
}
Re[2]: PHP: Перекодировка текста
От: Toomany S. Россия http://ip.ru
Дата: 16.12.03 12:30
Оценка:
deadem, спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.