Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сконвертировать строку
 
 автор: aexb   (04.05.2012 в 14:19)   письмо автору
 
 

Товарищи, гуглю уже второй час. Есть XML-файл, в котором весь русский текст находится в кодировке вида Главный тренер

Насколько я понимаю, это Unicode. Помогите разобраться, какой функцией сконвертировать строки такой кодировки, например, в UTF-8. Пробовал iconv, но не знаю, что подставлять в качестве входящей кодировки.

  Ответить  
 
 автор: cheops   (04.05.2012 в 14:28)   письмо автору
 
   для: aexb   (04.05.2012 в 14:19)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=39507.

  Ответить  
 
 автор: aexb   (04.05.2012 в 14:38)   письмо автору
 
   для: cheops   (04.05.2012 в 14:28)
 

Спасибо, изучил, но там в качестве решения предлагается адский хардкод. Об этом я думал, но имхо такие решения применять в продакшен-среде не совсем корректно. Плюс объем XML-файла, который нужно проходить массивом, может быть несколько десятков мегабайт и операция конверсии в массиве может быть довольно дорогостоящей. Можно ли делать перекодировку какими-то штатными средствами?

  Ответить  
 
 автор: cheops   (04.05.2012 в 14:49)   письмо автору
 
   для: aexb   (04.05.2012 в 14:38)
 

У вас уже HTML-представление? Или чистый UNICODE? Если последний, то да, есть штатная функция utf8_decode().

  Ответить  
 
 автор: aexb   (04.05.2012 в 14:59)   письмо автору
 
   для: cheops   (04.05.2012 в 14:49)
 

Разобрался по-другому (правда видимо дело в настройках хостинга). В скриптах происходит XSLT-трансформация полученного XML-файла через PHP. И при трансформации PHP автоматически декодирует весь этот юникод в cp1251. А далее все просто решается через
<? 
echo iconv("UTF-8""windows-1251"$xslt->transformToXML($xml)); 
?>


Правда, по-хорошему, разобраться бы, почему PHP декодирует юникод 1251... :)

  Ответить  
 
 автор: cheops   (04.05.2012 в 18:03)   письмо автору
 
   для: aexb   (04.05.2012 в 14:59)
 

В XML-расширениях всегда так было, они предпочитают работать с UTF-8 или UTF-16.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования