|
|
|
| Товарищи, гуглю уже второй час. Есть XML-файл, в котором весь русский текст находится в кодировке вида Главный тренер
Насколько я понимаю, это Unicode. Помогите разобраться, какой функцией сконвертировать строки такой кодировки, например, в UTF-8. Пробовал iconv, но не знаю, что подставлять в качестве входящей кодировки. | |
|
|
|
|
|
|
|
|
для: cheops
(04.05.2012 в 14:28)
| | Спасибо, изучил, но там в качестве решения предлагается адский хардкод. Об этом я думал, но имхо такие решения применять в продакшен-среде не совсем корректно. Плюс объем XML-файла, который нужно проходить массивом, может быть несколько десятков мегабайт и операция конверсии в массиве может быть довольно дорогостоящей. Можно ли делать перекодировку какими-то штатными средствами? | |
|
|
|
|
|
|
|
для: aexb
(04.05.2012 в 14:38)
| | У вас уже HTML-представление? Или чистый UNICODE? Если последний, то да, есть штатная функция utf8_decode(). | |
|
|
|
|
|
|
|
для: cheops
(04.05.2012 в 14:49)
| | Разобрался по-другому (правда видимо дело в настройках хостинга). В скриптах происходит XSLT-трансформация полученного XML-файла через PHP. И при трансформации PHP автоматически декодирует весь этот юникод в cp1251. А далее все просто решается через
<?
echo iconv("UTF-8", "windows-1251", $xslt->transformToXML($xml));
?>
|
Правда, по-хорошему, разобраться бы, почему PHP декодирует юникод 1251... :) | |
|
|
|
|
|
|
|
для: aexb
(04.05.2012 в 14:59)
| | В XML-расширениях всегда так было, они предпочитают работать с UTF-8 или UTF-16. | |
|
|
|