PHP: венгерский символ в XML - PullRequest
1 голос
/ 20 марта 2012

У меня есть веб-сервис, который выдает результат XML.

Я работал над этим сайтом до сих пор, потому что локально (на моей машине) он работает по-другому, как на сервере ...

На сервере установлена ​​английская ОС, на моей машине - венгерская ОС (win1250 или iso-8859-2).Поэтому я должен перенастроить доступ к базе данных (установить кодировку клиента на utf), чтобы сохранить венгерские символы, такие как «ő», «ű» ...

Ввод в настоящее время в порядке, только вывод производит ошибки ...

На английском сервере этот код прерван по ошибке:

$s = "\xf5t\xdb";

$doc = new DOMDocument('1.0', 'iso-8859-2');
$doc->formatOutput = true;
$m = $doc->createElement('package');
$doc->appendChild($m);
$n = $doc->createElement('Msg');
$m->appendChild($n);
$n->nodeValue = $s;
$xs = $doc->saveXML();
echo($xs);

ошибка была:

PHP Warning:  DOMDocument::saveXML() 
[<a href='domdocument.savexml'>domdocument.savexml</a>]: 
output conversion failed due to conv error, bytes 0xF5 0xDB 0x3C 0x2F

Я не знаю, как произвести «ő» и «ű "символов в выводе.

Я могу показать их:

$s = "\xf5t\xdb";
echo($s."<br>");

Но генерация XML не удалась, независимо от того, что я использую SimpleXML или Dom ...

Чтоможет быть решение?

Спасибо за каждую идею: дд

1 Ответ

2 голосов
/ 20 марта 2012

Если ваши данные используют utf8, вы не можете создать utf8 xml вместо iso-8859-2?Иначе вам придется использовать mb_convert_encoding ()

...