(mal wieder) Umlautproblem

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

  • (mal wieder) Umlautproblem

    Hallo!

    Ich habe zur Zeit ein Problem, welches ich nicht gelöst bekomme. Ich habe ein HTML File erstellt, welches charset utf-8 hat und in utf-8 gespeichert ist.

    Wenn ich nun meine Seite über die URL http://www.example.com/Übung aufrufe, fange ich über mod_rewrite dies ab und erhalte den String "%C3%9Cbung".

    Diesen wandle ich mittels rawurlencode(trim($URL_TEIL)) um und erhalte "Übung". Soweit so gut.

    Parallel durchlaufe ich einen Ordner auf dem Webspace (lokal), welcher ebenfalls den Ordner "Übung" hat und gebe diesen aus.

    Wenn ich nun die beiden Strings über var_dump() ausgebe, erhalte ich folgende Ausgabe:

    PHP-Code:
    string(6"Übung"
    string(7"Übung" 
    Wobei das obere aus der URL kommt und das untere aus dem Filesystem. Warum habe ich dort denn bitte zwei unterschiedliche längen? Ich versuchte nämlich die beiden Werte zu vergleichen und bekomme aufgrund dieses Fehlers natürlich immer ein false zurück. Ich wäre froh, wenn mir jemand erklären könnte, warum das so ist und was ich ändern muss.

    Besten Dank und ein schönes Wochenende!

  • #2
    Zitat von DubiDuh Beitrag anzeigen
    Wenn ich nun meine Seite über die URL http://www.example.com/Übung aufrufe,
    ... dann überlässt du die Kodierung, in der das Sonderzeichen kodiert wird, dem Browser.

    Wenn ich nun die beiden Strings über var_dump() ausgebe, erhalte ich folgende Ausgabe:
    Aber nicht innerhalb ein und des selben Scriptes, oder?

    Wobei das obere aus der URL kommt und das untere aus dem Filesystem. Warum habe ich dort denn bitte zwei unterschiedliche längen?
    Vermutlich weil in dem einen Fall das Sonderzeichen Ü in einer Mehrbytekodierung kodiert ist, und im anderen nicht.

    Mal die hexadezimalen Bytewerte ausgeben zu lassen, verschafft sicher Klarheit.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Doch, beide Ausgaben von var_dump sind in einem Skript.

      Habe jetzt die Hex mal von beidem Strings ausgegeben. Einmal wird Ü als "55-cc-88" und ferner als "c3-9c" ausgegeben.

      Nun meine dumme Frage: Wie bekomm ich das den umgebogen, dass ich die codierung der URL auf utf8 bekomme, als Ü => c3 9c?

      Edit: Okay, es liegt am Browser: FF machts so wie ich will, also "richtig", Safari macht 55 cc 88 weils so über cocoa codiert wird.
      Zuletzt geändert von DubiDuh; 17.07.2010, 16:52.

      Kommentar

      Lädt...
      X