Войти

Показать полную графическую версию : [решено] Кодировка XML


rus-4-ever
12-03-2008, 01:11
Здравствуйте, тут такая проблема....

Работаю с ХМЛ через ДОМ в РНР5...
Когда при редактировании файла ввожу английский текст-то всё норм!!!
Когда ввиде атрибуда пытаюс вставить русский текст-то вылетает ошибка

Warning: DOMDocument::save() [function.DOMDocument-save]: output conversion failed due to conv error, bytes 0xF4 0xFB 0xE2 0x22 in /home/docs/test1/change-xml.php on line 54

В итоге ХМЛ файл полностью стирается...

Подскажите, как можно Задавать атрибуты руским шрифтом?

Спасибо.

vadimiron
12-03-2008, 10:00
rus-4-ever,
С кодировками надо поиграться наверно. Вы кодировку задаёте
Я в инете нашёл пример (не знаю работает ли) - поиграйтесь с ним:

$xml = new DOMDocument('1.0', 'iso-8859-1');
$creatorTxt = $xml->createTextNode(utf8_encode('Mickaël'));
$xml->save('rss.xml');

rus-4-ever
12-03-2008, 13:07
В том то и дело, что пересмотрел и все комбинации iconv() и utf8_encode(), но в некоторых случаях просто выводится абракадабра... А вот нормальный текст-не получается...
А в какой кодировке передаются данные формы? в той, которой страница была?

Если ничего не получится-придётся наверно через БД значения сохранять :(

bruder
12-03-2008, 15:08
а какая кодировка у xml файла? Должна быть WINDOWS-1251. У меня без ошибок в таком случае.

rus-4-ever
12-03-2008, 21:04
Так в том то и дело, что ХМЛ создает скрипт!!! а с нормальной кодировкой создавать не хочет!

bruder
12-03-2008, 21:20
не понял какой скрипт? В xml файле так стоит?

<?xml version="1.0" encoding="WINDOWS-1251" ?>

rus-4-ever
12-03-2008, 21:51
Всё, спасибо!!!
Помогла статья

http://ief.tup.km.ua/docs/php42/f/ref.xml.html

Фишка была в том, что внутренняя кодировка РНР UTF-8!!! Поэтому прежде чем сохранять надо было сделать utf8_encode(), а потом utf8_decode(), как и подсказали =)




© OSzone.net 2001-2012