Проблема с mb_convert_encoding($data, 'UTF-8', 'UTF-16BE')

Alex_v.tv

Новичок
Доброй ночи!

Убил очень много времени на решение такой проблемы:
есть csv-файл в кодировке ucs-2BE (или utf-16BE), необходимо привести к utf-8.
при попытке

$data = mb_convert_encoding ($data, 'UTF-8', 'UTF-16BE');

получаю такой результат:

"аименованиеР:атегории" вместо "Наименование Категории", "&СРитер" вместо "Питер" и т.д., т.е. "убиваются" первые символы и пробелы.

С iconv - аналогично.

Кто сталкивался - прошу помощи.
 

Alex_v.tv

Новичок
настройки проверяю, но всё должно быть нормально, др. проблем с кодировками не видел ни разу ...
гуглил далеко не 2 минуты (, результат всех найденных чужих функций тот же самый.
пару раз наткнулся на форумах на туже проблему у людей без решения.

на php.net данная ситуация есть в багах без патча, полную поддержку юникода обещают в php6

похоже, прямого решения нет, кроме, возможно, колдовства с декодированием своими руками, изучив всю матчасть по теме, на что нет времени категорически
в моём случае решаю используя preg_match по частям значений, благо, этого вроде хватает.
 

Redjik

Джедай-мастер
ну можно как во второй ссылке бинарными смещениями, главное спецификацию хорошенько изучить, думаю за час-два можно справится, тем более шаблон то уже есть.
 

Alex_v.tv

Новичок
да, возможно
не думал, что геморрой такой, возможно меньше бы времени потратил на поиски )
сейчас разгребусь и пойду изучать, как-то не сталкивался раньше
спасибо
 
Сверху