parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 11.08.2008 13:31

при сохранении xdoc в качестве encoding автоматически указывается кодировка, указанная в момент сохранения в $request:charset. интернациональные буквы в сохраняемом xdoc также сохраняются именно в этой кодировке (при необходимости перекодируются).

если у вас в $request:charset задано windows-1251 его значение не изменяется перед созданием xdoc, то вы некорректно указываете encoding в процессе создания xdoc: как только в теле вашего xml встретятся интернациональные символы, то xdoc создаваться перестанет и будет ошибка.

правильный вариант если у вас в качестве $request:harset указана кодировка windows-1251: указать в @encoding создаваемого xml именно её.

если необходимо сохранить xml файл именно в кодировке utf-8 (во многих случаях этого не требуется), то перед сохранением изменить значение $request:charset на utf-8 и после сохранения восстановить предыдущее значение.

ещё один вариант (я его читаю совсем правильным): перекодировать все файлы в utf-8, указать в $request:charset utf-8 и забыть про хранение данных в других кодировках, а при выдаче броузерам, при необходимости, указывать в качестве $response:charset иную кодировку (например windows-1251).