Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit JS Sonderzeichen für GET-Variable umwandeln

Einklappen

Neue Werbung 2019

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

  • Mit JS Sonderzeichen für GET-Variable umwandeln

    Hallo lustige Community,

    Ich habe ein kleines Problem mit dem Übertragen von Umlauten über eine GET-Variable. Ich lasse per JavaScript eine URL mit GET-Variablen generieren und möchte dir als GET-Variable eingetragenen Strings natürlich URL-konform machen.
    Dazu verwende ich URIencode(). Das funktioniert aber nicht ganz. Leerzeichen werden richtig durch %20 ersetzt, aber ein ö wird irgendwie durch %C3%B6 ersetzt, was nicht richtig ist, da ö ja eigentlich %F6 ist.

    Ich habe gelesen, dass %C3%B6 UTF-8 ist und %F6 iso-8859-1 ist. Nun scheint URIencode mit UTF-8 zu arbeiten, was ich nicht will. Auch wenn ich das PHP-skript mit folgendem header verwende, bleibt das ö falsch...

    Das ganze ist übrigens ein Skript zum generieren von Bildern.
    PHP-Code:
    Header("Content-Type: image/png, charset=utf-8");

    $name $_GET['name'];

    // ...

    ImageString($img110715$name$black); 
    statt dem ö erscheint sowas ähnliches wie "Ä´s" (Das ´ ist auf dem s)

    schonmal Danke für eure Hilfe
    www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)

  • #2
    Zitat von Felk Beitrag anzeigen
    Dazu verwende ich URIencode().
    Wenn das eine von dir selbst geschriebene Funktion ist, zeig sie uns bitte.
    Wenn du encodeURI meinst - dann verfasse deine Problembeschreibungen bitte mit etwas mehr Sorgfalt.

    Nun scheint URIencode mit UTF-8 zu arbeiten, was ich nicht will.
    Irgendwas anderes als UTF-8 für Webapplikationen zu nehmen, ist heutzutage eigentlich unsinnig.

    Aber wenn du das für sinnvoller hältst - dann probiere escape statt encodeURI, das kodiert auf Basis von ASCII.

    Die Daten serverseitig umzukodieren, wäre eine weitere Möglichkeit - utf8_decode, iconv.
    (Dass dabei natürlich Verluste entstehen bei Zeichen, die in der Zielkodierung nicht darstellbar sind, sollte klar sein.)
    Auch wenn ich das PHP-skript mit folgendem header verwende, bleibt das ö falsch...

    Das ganze ist übrigens ein Skript zum generieren von Bildern.
    Header("Content-Type: image/png, charset=utf-8");
    Das ist ja auch kompletter Quark - weil Bilder Binärdaten sind, und keine „Zeichenkodierung“ haben.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Danke, mit escape hat es geklappt.
      Habe aber auch mal gelesen, dass escape irgendwann durch encodeURI ersetzt wird... stimmt das?
      Naja für jetzt reicht es mir.
      Meine ganze Website auf UTF-8 umzustellen ist mir eig. zu gefährlich, da ich nicht weiß, was das für Ausmaße haben könnte.
      Ich müsste, glaub ich, z.B. alle Aufrufe von htmlentities umschreiben, damit sie auf UTF-8 basieren... weil die ja standardmäßig iso annehmen oder sowas.

      Solang meine Website läuft bin ich zufrieden ^^
      danke
      www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)

      Kommentar

      Lädt...
      X