Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] UTF-8, GET und die Browser-Adresszeile

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] UTF-8, GET und die Browser-Adresszeile

    PHP-Code:
    // receiver.php
    $name  $_GET['name'];
    echo 
    'ok'
    Das Script kan auf zwei verschiedene Weisen mit Daten versorgt werden. Entweder durch ein anderes PHP-Script:
    PHP-Code:
    // sender.php
    $result file_get_contents('receiver.php?name=abc'); 
    oder durch Eingabe in die Adresszeile eines Browsers.

    Die Frage: Wer bestimmt die Kodierung der Daten? Der Sender, oder der Empfänger? receiver.php ist in UTF-8 ohne BOM gespeichert. Kann man insofern darauf vertrauen, dass alles was reinkommt im Script UTF-8-kodiert vorliegt oder muss man sich noch darum kümmern?

    Wie ist es mit Daten, die per cUrl/POST gesendet werden und in $_POST empfangen werden?

    ich weiß nicht wirklich, wie ich das googeln soll.

  • #2
    Zitat von Wolla Beitrag anzeigen
    Die Frage: Wer bestimmt die Kodierung der Daten? Der Sender, oder der Empfänger? receiver.php ist in UTF-8 ohne BOM gespeichert. Kann man insofern darauf vertrauen, dass alles was reinkommt im Script UTF-8-kodiert vorliegt oder muss man sich noch darum kümmern?
    Der Empfänger kann da nichts bestimmen. Übrigens macht es ohne BOM überhaupt keinen Unterschied, ob die Datei als UTF-8 gespeichert wird so lange keine Sonderzeichen (= alles außer den ersten 128 ASCII Zeichen) verwendet werden. Die Kodierung ist in der Datei nicht explizit angegeben.

    Einfach gesagt: Die Kodierung der Daten bestimmt, wer sie erstellt.

    Kommentar


    • #3
      Also in anderen Worten: Wenn ich UTF-8 brauche, dann muss ich den Kram untersuchen und ggf. umkodieren.

      Danke, das hat geholfen.

      Kommentar


      • #4
        In der Regel sondiert man API-Encodings indem man ein Format zum Datenaustausch ( per GET oder POST ) nutzt das charSets Definierung von Hause aus unterstützt. Das XML-Format wär hier eins der gängigen Werkzeuge, da dort Valide Requests halt mit

        Code:
        <?xml encoding="utf-8" ?>
        <request>...</request>
        im Regelfall beginnen und das ausgelieferte Encoding mitliefern. Die alternative wäre JSON, das Grundlegend auf UTF-8 basiert.

        Für den Fall das dein Receiver also nicht unbedingt als universeller Form-Collector dient, steht es dir doch offen ein entsprechendes ( valides ) Format vorauszusetzen.

        Nur mal so als Idee zur Problemlösung.

        Kommentar


        • #5
          Auch ne Idee. merk ich mir mal für zukünftige Projekte.

          Hier ist es aber so, dass ich Ergebnisse meines Scripts auf der GET-Schnittstelle eines Kunden abkippen muss, und die ist so definiert. Ich sende UTF-8 und die kriegen Umlautprobleme, daher sende ich jetzt umkodierte Daten und die sind nun glücklich. "Selbst umkodieren" von empfangenen UTF-8 haben sie nicht verstanden.

          Kommentar

          Lädt...
          X