Marc-123: EBCDIC in ASCII konvertieren, auf UTF-8 Website

Hi,

also ich habe ein Zeichensatz-Problem. Ich möchte EBCDIC in ASCII konvertieren. Und das auf einer Website, bei der ich

header('content-type: text/html; charset=utf-8');

mitliefere.

Ich versuche die Konvertierung mit

$convertText = htmlentities(recode_string("EBCDIC..ASCII", $toConvert));

In der Variable $toConvert ist der per POST übermittelte EBCDIC-Code enthalten. Aber irgendwie funktioniert das nicht, also ich gebe ein:

[kann ich nicht posten]

Rauskommen soll

hallo du

und raus kommt

éfBaSÃÍSÃÍSÃl SÃÏBuBÑ

Jetzt brauche ich Rat und Hilfe.

Vielen Dank. Sitze da schon ein wenig lange dran.

Grüße
Marc

  1. Hi!

    also ich habe ein Zeichensatz-Problem. Ich möchte EBCDIC in ASCII konvertieren. Und das auf einer Website, bei der ich
    header('content-type: text/html; charset=utf-8');
    mitliefere.

    Dann willst du nicht ASCII sondern UTF-8 haben, denn die verschiedenen Varianten von EBCDIC beinhalten Zeichen, die mit ASCII nicht kodierbar sind. Außerdem soll es ja in einem Medium mit UTF-8-Kodierung so eingebunden werden, dass der Empfänger die richtigen Zeichen darstellen kann, die der EBCDIC-Text verkörpert.

    Ich versuche die Konvertierung mit
    $convertText = htmlentities(recode_string("EBCDIC..ASCII", $toConvert));

    Warum nimmst du recode und nicht iconv? iconv ist der leistungsfähigere Nachfolger von recode. htmlentities() nimmt ohne explizten charset-Parameter an, dass es ISO-8859-1 bekommt.

    In der Variable $toConvert ist der per POST übermittelte EBCDIC-Code enthalten.

    Wer setzt denn den POST-Request ab?

    Aber irgendwie funktioniert das nicht, also ich gebe ein:

    Du gibst etwas ein? Wo, in einem handelsüblichen Browser?

    [kann ich nicht posten]

    Du kannst dir aber die Hex-Werte ansehen, die du bekommst und schauen, ob das die gleichen sind wie bei der verwendeten EBCDIC-Variante.

    Rauskommen soll
    hallo du
    und raus kommt
    éfBaSÃÍSÃÍSÃl SÃÏBuBÑ

    In ASCII sind die Zeichen mit den Diakritika gar nicht enthalten.

    Für das "hallo du" müsstest du jedenfalls in der Kontrollausgabe der Eingangsdaten diese Bytes sehen:

    88 81 93 93 96 40 84 A4

    Lo!