ugrás a tartalomhoz

Elakadtam a kódolással / UTF / Win-1250

durumdara · 2012. Jún. 11. (H), 16.31
Sziasztok!

Windows 7, 64 bit, Apache, PHP, Delphi.

Nagyon elakadtam kódolási problémákkal, ezért most már azzal is beérném, hogy ha tudnék működő php kódot kapni.

Tehát: MSXML2.XMLHTTP alól küldök PHP felé XML-t és azt is várnék vissza.
A PHP fájl UTF8 kódolt (PSPAD) és a belőle generált XML frankón megérkezik.
  1. $s = 'alma árvíztűrő tükörfúrógép beta';  
  2. $doc = new DOMDocument('1.0''utf-8');  
  3. $doc->formatOutput = true;  
  4. $m = $doc->createElement('package');  
  5. $doc->appendChild($m);  
  6. $n = $doc->createElement('Msg');  
  7. $m->appendChild($n);  
  8. $n->nodeValue = $s;  
  9. $xs = $doc->saveXML();  
  10. header('Content-Type: text/xml');  
  11. echo($xs);  
Ez rendben.

Ám amint én akarok ékezeteseket küldeni az XMLHTTP-n keresztül, mindjárt nem a megfelelő karaktereket kapom...

Ha a php-ban definiálom, hogy:
  1. $s = 'ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP';  
akkor a kimenet frankó, nagyszerű.

Ha a bemenő paramétert raknám bele:
  1. global $HTTP_RAW_POST_DATA;  
  2. $xmlstr = $HTTP_RAW_POST_DATA;  
  3. $xml = new SimpleXMLElement($xmlstr);  
  4. $msg = $xml->msg;  
  5. $s = $msg;  
akkor természetesen nem jó az eredmény.
De ha konvertálom, akkor sem jó!
  1. $s = iconv('UTF-8''Windows-1250//IGNORE'$s);  
  2. v.  
  3. $s = iconv('UTF-8''ISO-8859-2//IGNORE'$s);  
Teljesen elakadtam, mert fogalmam sincs, hol lehet a hiba oka.

a.) már a COM object rosszat küld
b.) valamit elszúrok php alatt
c.) mittomén?

Valaki foglalkozott már efféle dolgokkal?

Tud valaki olyan kódot küldeni, amiben a bemenő XML-ből kivett paramétert belehelyezi a kimenő kódba és az azonos lesz azzal, mintha egy változót definiáltam volna szimplán php alól?
Mert ez utóbbival remekül megy a generálás, csak az inputból nem olyan sosem, mint kéne legyen!!!

Vagy van tippetek, hogyan teszteljem? Mivel lehet hasonlóan küldeni, mint fenti COM object-tel?

Köszönöm!

Üdv: dd
 
1

Csak találgatok

eddig bírtam szó nélkül · 2012. Jún. 11. (H), 16.51
Nem az a gond, hogy a beküldött ékezetek kódolása nem UTF-8?
Ha így van, akkor nem lehet, hogy fel kellene cserélni az iconv-ban az első két paramétert?
2

A $s = 'ÁRVÍZTŰRŐ

tgr · 2012. Jún. 12. (K), 08.06
A $s = 'ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP'; sztring kódolása olyan lesz, amilyen a php kódot tartalmazó szövegfájl kódolása, úgyhogy első körben azt érdemes megnézni, ha jól működik, hogy pontosan milyen kódolású. Második körben dumpold ki a hibás eredményt hexadecimálisan.
3

Sziasztok! Köszönöm! Valóban

durumdara · 2012. Jún. 20. (Sze), 11.56
Sziasztok!

Köszönöm!
Valóban a Delphi oldalon volt a hiba, valahogy hiába akartam UTF8-at használni, ő UTF16-ra konvertálta...
Most megtaláltam a megoldást!

Ezer köszönet!

Üdv: dd
4

Melyik komponens?

Pepita · 2012. Jún. 20. (Sze), 23.33
Leírnád esetleg, melyik Delphi melyik komponensét használtad? Örülök, hogy megoldottad, csak érdekelne.