PHP DOMDocument encoding hiba [megoldva]

Fórumok

Sziasztok!

Adott egy php kód, amiben az alábbi sor található:


$doc->loadXML(str_replace('&', '&', html_entity_decode($doc->saveXML())));

Ez a sor CentOS 4.4 alatt (Apache 2.0, saját fordítású PHP 5.1.6) rendben lefut, míg ugyanazzal az xml adattal FreeBSD alatt (legfrisebb ports, Apache 2.2, PHP 5.2.1_3) az alábbi hibát adja:


Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Input is not proper UTF-8, indicate
encoding ! Bytes: 0xA0 0x3F 0x3F 0x3F in Entity, line: xx in yyy.php on line zz

Kipróbáltam FreeBSD alatt 5.1.6-os php-val is és szintén előjön a hiba, tehát szerintem nem a PHP verziók közötti különbség lehet a gond.

Van valakinek ötlete, hogy merre induljak el, hol keressem a hiba forrását?
Köszi.

Hozzászólások

igy probaltad? (ha tenyleg utf8 a forras)


$doc->loadXML(str_replace('&', '&', html_entity_decode($doc->saveXML(), ENT_QUOTES, 'UTF-8')));

"mind a FreeBSD, mind a CentOS rendszer alatt ISO-8859-1-re van állítva mindegyik"
Sztem akkor itt lesz a bibi. Gyorsan teszteltem es ez a kod nalam hiba nelkul fut (FreeBSD 6.2-RELEASE):


$doc = new DOMDocument('1.0', 'UTF-8');

$root = $doc->appendChild( $doc->createElement('root') );
$node = $root->appendChild( $doc->createElement('node') );
$text = $node->appendChild( $doc->createTextNode('ű & ő') );
$doc->loadXML(str_replace('&', '&', html_entity_decode($doc->saveXML(), ENT_QUOTES, 'UTF-8')));
print $doc->saveXML();

"Azért köszi a próbálkozást :)"
ma epp raerek :)

pwm köszi a segítséget. Megvan a hiba: FreeBSD latin2 volt a PHP mögött lévő MySQL default charset-je. Újrafordítottam utf8-cal és így jó. Én kérek elnézést, hogy kötöttem az ebet a karóhoz, hogy proper utf8 volt az xml, mert nem volt az.