Encoding Problem

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

  • Encoding Problem

    Ich hatte meine Seite eine Zeit lang als UTF-8 kodiert laufen. Da sowohl die Eingabe- als auch die Ausgabedaten UTF-8 kodiert waren, hat das wunderbar hingehaut. Jetzt steh' ich allerdings vor dem Problem, dass auch die Daten in der Datenbank UTF-8 kodiert sind. Und ich wieder auf ISO-8859-1 umgestellt habe.

    Das Ergebnis erkennt man auf http://www.kno.at/blog/ (statt Umlauten und Sonderzeichen eben falsche Zeichen).

    Das Problem: Die Daten in der Datenbank sind gemischt UTF-8 und ISO-8859-1. Gibts eine Möglichkeit, die UTF-8-Daten zu ermitteln und umzuwandeln?

    Und noch eine Frage: Wenn ich die Webseite auf UTF-8 laufen haben möchte, kann ich dann in PHP dennoch in ISO-8859-1 arbeiten?

    Verdammtes Encoding

  • #2
    Re: Encoding Problem

    Original geschrieben von Kno
    Und ich wieder auf ISO-8859-1 umgestellt habe.
    Warum?
    Das Problem: Die Daten in der Datenbank sind gemischt UTF-8 und ISO-8859-1. Gibts eine Möglichkeit, die UTF-8-Daten zu ermitteln und umzuwandeln?
    Jein.

    Zweifelsfrei erkennen kann man es nicht, höchstens raten.
    mb_detect_encoding o.ä. könnte es u.U.
    Und noch eine Frage: Wenn ich die Webseite auf UTF-8 laufen haben möchte, kann ich dann in PHP dennoch in ISO-8859-1 arbeiten?
    Und wieder: Warum?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Encoding Problem

      Original geschrieben von wahsaga
      Warum?
      Ich arbeite mit Umlauten, Accents und so weiter. Mit ISO-8859-1 validiert das alles auch wunderbar gegen W3C. UTF-8 macht mit allen Sonderzeichen Probleme. Sprich ich müsste alles konvertieren. Und nochmal beim Schreiben/Lesen der DB.

      Wozu das ganze Theater, wenns auch einfacher geht?

      Ich beschäftig mich allerdings erst seit kurzem näher mit dem Thema Encoding. Insofern lass' ich mich gern eines Besseren belehren.

      Kommentar


      • #4
        Re: Re: Re: Encoding Problem

        Original geschrieben von Kno
        Ich arbeite mit Umlauten, Accents und so weiter. Mit ISO-8859-1 validiert das alles auch wunderbar gegen W3C. UTF-8 macht mit allen Sonderzeichen Probleme.
        Dann machst du irgendetwas grundfalsch.
        Wozu das ganze Theater, wenns auch einfacher geht?
        UTF-8 ist das einfachste - du brauchst keinerlei Zeichen (abgesehen von den HTML-spracheigenen) mehr als HTML-Entities kodieren o.ä. Aufwand betreiben.

        Du musst es nur konsequent anwenden - überall, an jeder Stelle.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Da liegt das Problem. Wo überall wäre das?

          Im Encoding der PHP-Files?

          Muss ich jede Benutzereingabe kodieren? Die Datenbank? Muss ich im Script zur Laufzeit das input_, output_ und internal_encoding umstellen? Wie krieg' ich eine valide Ausgabe hin?

          Viele Fragen, viele Probleme. Wie gesagt, liegt vielleicht schlichtweg daran, dass auf der aktuellen Seite gemischte Encodings aufeinandertreffen und deswegen nichts validiert (was mir auch einleuchtet).

          Original geschrieben von wahsaga
          Dann machst du irgendetwas grundfalsch.
          Soviel ist sicher

          Kommentar


          • #6
            Original geschrieben von Kno
            Da liegt das Problem. Wo überall wäre das?
            Überall, wo sich die Zeichenkodierung einstellen/beeinflussen lässt.
            Im Encoding der PHP-Files?
            Scripte als UTF-8 abspeichern, ja.
            Muss ich jede Benutzereingabe kodieren?
            Nein, wenn deine HTML-Dokumente als UTF-8 ausgeliefert werden, bekommst du auch UTF-8 bei Formularübergaben. accept-ancoding sollte man sicherheitshalber trotzdem für Formulare noch angeben, sonst bauen manche Browser Unsinn.
            Die Datenbank?
            Wenn's geht, ja.
            Aber UTF-8 ist vollständig in ASCII abbildbar - abspeichern geht also auch so, nur Suchfunktionen/Sortierungen etc. "leiden" dann u.U. darunter.
            Und die Verbindung zur DB natürlich auch auf UTF-8 stellen, wenn in der DB UTF-8 verwendet wird.
            Muss ich im Script zur Laufzeit das input_, output_ und internal_encoding umstellen?
            Ist nach meinen Erfahrungen nicht zwingend erforderlich.
            Kann aber u.U. davon abhängen, was man mit den Daten machen will.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Spannendes Thema auf alle Fälle.

              Hab' jetzt kurz probiert und feststellen müssen, dass die Browserdarstellung bei UTF-8 Sonderzeichen nicht hinhaut. Eta das Wort "Déjà-vu". Firefox zeigt bei einem UTF-8 kodierten Dokument dennoch nur zwei Fragezeichen statt der akzentuierten Vokale. Nicht genügend :/

              Kommentar


              • #8
                Original geschrieben von Kno
                Eta das Wort "Déjà-vu". Firefox zeigt bei einem UTF-8 kodierten Dokument dennoch nur zwei Fragezeichen statt der akzentuierten Vokale. Nicht genügend :/
                Dann hast du dir höchstvermutlich nur eingebildet, dass du "Déjà-vu" auch wirklich UTF-8-Kodiert ausgegeben hast.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X