| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > хэш и кодировка. |
| Автор: mastercz 6.11.2008, 04:29 |
| Помогите разораться. Парсирую XML с помощью XML::Simple. В результате получаю хэш хэшей с кодировкой UTF-8 Существуют ли готовые решения для замены кодировки в хэше. Или как пропарсировать все дерево и заменитть кодировку. Существеено, что дерево хэша не имеет жесткой структуры (может быть любым). заранее спасибо за ответ. |
| Автор: KSURi 6.11.2008, 05:24 |
| Эээ, а может попробовать сменить кодировку у XML, а не в структуре? ЗЫ: "парсирую" прикольное слово) |
| Автор: rcdimon 6.11.2008, 19:17 |
| Я кстати пробовал сменить сначала кодировку у файла, а потом уже парсить- у меня ошибка вылетала. Пришлось сначала парсить, а перед работой с полученными данными перекодировать их. Отдельно, кажный элемент. |
| Автор: vadiml 6.11.2008, 21:52 |
| rcdimon, > пробовал сменить сначала кодировку у файла, а потом уже парсить- у меня ошибка вылетала Значит был какой-то символ, отсутствующий в целевой кодировке то, что Вы уже разобрали XML дело не улучшит, можно сначала изьять все символы, которых в получаемой кодировке нет, и после спокойно перекодировть сразу весь файл. |
| Автор: KSURi 7.11.2008, 01:14 |
| Я имел ввиду сменить перекодировать переменную, где находится еще не парсенный XML. |
| Автор: sir_nuf_nuf 7.11.2008, 12:25 |
| KSURi, кстати, не все так просто.. Парсеры XML извлекают информацию о кодировке из заголовка XML <? xml version="1.0" encoding="CP1251" ?> Так что нужно ее еще и тут будет поменять. Если заголовка нет, то по умолчанию кажется UTF8.. |