@marsep

Как можно привести заданный текст в правильную кодировку?

Всем привет! Есть текст:

Äàòà ðîæäåíèÿ: 10.12.1995
E-mail:
Ñóììà: 4000.00
Ñðîê: 8
Ðåãèîí: Ìîñêîâñêàÿ îáëàñòü
Ãîðîä: ã Æåëåçíîäîðîæíûé


Не могу никак привести его в нормальное состояние через PHP-код, что уже только не пробовал. Вроде бы ничего такого, но не получается и все. Пробовал через iconv и mb_convert_encoding, но толку не дало. Какие-нибудь онлайн-декодеры выводят этот текст нормально и все у них получается, но их подсказки не помогают тоже. Сам текст приходит в код с почты, в свойствах письма пишет, что кодировка ASCII. Может кто-нибудь сталкивался с подобными сложностями декодирования? Заранее спасибо!

P.S. Сам яндекс (почта) выводит текст корректно, но это не сильно важно - при сборе текста с почты и записи, например, в файл, а также при использовании данных функций ничего не получается, выводит либо в этом же виде, либо совершенно другими крокозябрами - если неправильно кодировки выбрать...
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
@marsep Автор вопроса
iconv('CP1251', 'UTF-8', '');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Текст, приведенный Вами, это символы кодировки Win-1251, т.е. "А"=0хС0 ... "я"=0хFF, преобразованные в UTF, не по правилам для кириллицы (чтобы получились 0х0410...0х044F), а просто как обычные расширенные ASCII (0х00С0..0х00FF). Т.е. какой-то из процессов, выполняющих кодирование из ASCII в UTF не понимает как работать с кириллицей Win-1251. Для обратного преобразования по сути Вам нужно произвести декодирование UTF->ASCII, а потом объявить получившийся блок данных Win-1251 и произвести конвертирование в прямом направлении Win-1251->UTF. Как это сделать на PHP, я не знаю, извините ...

P.S. Кстати, выложите пример Вашего файла куда-нибудь в оригинальном виде. Может быть это именно Ваш код не понимает кодировку, если по Вашим словам в веб-интерфейсе все корректно отображается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы