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.

    $s = 'alma árvíztűrő tükörfúrógép beta';
    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->formatOutput = true;
    $m = $doc->createElement('package');
    $doc->appendChild($m);
    $n = $doc->createElement('Msg');
    $m->appendChild($n);
    $n->nodeValue = $s;
    $xs = $doc->saveXML();
    header('Content-Type: text/xml');
    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:

    $s = 'ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP';
akkor a kimenet frankó, nagyszerű.

Ha a bemenő paramétert raknám bele:

    global $HTTP_RAW_POST_DATA;
    $xmlstr = $HTTP_RAW_POST_DATA;
    $xml = new SimpleXMLElement($xmlstr);
    $msg = $xml->msg;
    $s = $msg;
akkor természetesen nem jó az eredmény.
De ha konvertálom, akkor sem jó!

$s = iconv('UTF-8', 'Windows-1250//IGNORE', $s);
v.
$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.