Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php, DOM, iso-8859-2
Forum PHP.pl > Forum > XML, AJAX
lukaszchm
Witam,
Widziałem tutaj kilka tematów o problemach z xml i kodowaniem, ale nie znalazłem takiego błędu jak mój. Uprościłem do minimum cały skrypt, żeby pokazać tylko sam błąd.

Przytoczę moze bardzo prosty kod
  1. <?php
  2. $dom = new DOMDocument("1.0","iso-8859-2");
  3. $root = $dom->createElement("root");
  4. $dom->appendChild($root);
  5. $root->appendChild($dom->createElement("element","ążśźęćńół"));
  6. print $dom->saveXML();
  7. ?>

jego wywołanie powoduje błąd
Kod
Warning: DOMDocument::saveXML() [function.saveXML]: output conversion failed due to conv error in /home/lukaszch/public_html/domTest.php on line 6

Warning: DOMDocument::saveXML() [function.saveXML]: Bytes: 0xEA 0xE6 0xF1 0xF3 in /home/lukaszch/public_html/domTest.php on line 6

Dodatkowo zamieszczam skrypt oraz źródło
mariuszn3
Rozszerzenie DOM jest dosyć ograniczone. Przynajmniej z moich testów wynika, że obsługa innych kodowań jest wimplementowana tylko w klasę DOMDocument, a DOMNode już nie... to znaczy, możesz utworzyć dokument w kodowaniu innym niż utf-8 a nawet go załadować w takim kodowaniu poprzez loadXML() Nie mniej ciągi znaków, przesyłane do funkcji na poziomie klasy DOMNode musisz już przesyłać w kodowaniu utf-8. Podobnie jest z odbieraniem danych. saveXML() wypluje Ci dane w kodowaniu jakie sobie zarzyczyłeś tylko jeśli będziesz chciał otrzymać ciąg znaków całego dokumentu, jak zarzyczysz sobie xml jakiegokolwiek pod węzła, zwrócony ciąg będzie w kodowaniu 'utf-8'.
lukaszchm
no właśnie tego sie bałem, że to wina php, narazie odpusciłem i zmieniłem kodowanie na utf8
dzięki za odpowiedź
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.