unicode(не могу определить какой) -> cp1251

KoSik

Новичок
unicode(не могу определить какой) -> cp1251

Доброго времени суток.
У меня такой вопросик, с которым мучаюсь уже несколько дней.

Ситуация такая.
На входе я получаю строку в юникоде, явно это не utf-8, вот пример:
%u0446%u0432%u0435%u0442

Мне эту строку нужно перевести обратно в нормальный человеческий русский язык (cp1251) и далее продолжить работу с ней....

Все варианты iconv уже попробовал. Проблема даже в том, что я не могу определить, что это за тип юникода.

Если хотите знать, откуда я получил эту строку - воспользовавшись модулем Sajax.php передал асинхронный запрос на сервер, который содержал русские буквы. Переделался в данный юникод мой запрос автоматически.

В общем, суть в том, как мне обратно декодировать мою строку в русский язык, т.е. в cp1251? Лазил по форуму, но максимум что нашел, это перевод из utf-8, но это явно не utf-8.

Заранее спасибо.
 

SiMM

Новичок
В FAQ нету вроде решения под его задачу ;)

> Если хотите знать, откуда я получил эту строку - воспользовавшись модулем Sajax.php передал асинхронный запрос на сервер, который содержал русские буквы.
Вот только за это - демонстрирую (обычно людей долго приходится пытать, чтобы узнать, откуда эти данные).
PHP:
$charset = 'CP1251';
echo preg_replace('#%u([0-9A-F]{4})#se',"iconv('UTF-16BE','$charset',pack('H4','\$1'))",'%u0446%u0432%u0435%u0442');
PS: хотя если строка гарантированно целиком представлена в виде %uHEX - то лучше iconv вынести за скобку.
 

KoSik

Новичок
SiMM Огромное спасибо.
P.S. Я начинаю любить этот форум =)
 
Сверху