Unsicherheiten wegen Charset

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

  • Unsicherheiten wegen Charset

    Ich habe ein Problem. Deswegen schreibe ich hier.

    Ich Code ein neues Frontend für meine Seite, das soll natörlich alles UTF8 sein. Ich hab jetzt ein bißchen Angst meine Sonderzeichen zu zerhauen, deshalb möchte ich gerne wissen was ihr mir ratet. (natürlich hab ich Sicherheitskopien).


    Inhalt in Datenbank ist mit einem Backend eingegeben worden das rein ISO-8859-1 ist. Das war die DB bis vor kurzem auch, ist sie aber seitdem der Provider auf MySQL 5.0.45 umgestellt hat natürlich nichtmehr. Jetzt: "utf8_general_ci". (Danach sind weitere Inhalte über das alte Backend dazu gekommen).

    Das neue Frontend ist jetzt natürlich außschließlich in utf8, zerhaut dabei aber Sonderzeichen, z.B. literarische Anführungszeichen. Daraus werden dann schwarze Rauten mit Fragezeichen...

    Wie gilt es jetzt vor zu gehen? Am liebsten wäre es mir natürlich wenn sich die Änderungen ausschließlich auf das beschränkten was beim Auslesen der DB passiert dann bräuchte ich kein neues Backend.

    Ich bin für jeden Rat dankbar!


    Lieber Gruß

    Tartax
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

  • #2
    Du vermengst Kollation und Charset..

    MySQL4 hat die Dateien intern als ISO abgespeichert, seit MySQL5.irgendwas sind die Daten intern als UTF8 abgespeichert.

    Mit welchem Charset die Daten rein kommen ist total egal, Hauptsache das Charset wurde vorher mit SET NAMES gesetzt - oder ist sowieso ISO (das ist der Standard-Zeichensatz vom php-mysql-client).


    Erstmal gilt es zu überprüfen, ob die Daten in der Datenbank korrekt kodiert sind - das geht am besten mit PMA. Datensatz auswählen, angucken, Sonderzeichen korrekt? Ja - gut, alles fein; Nein - schlecht, du hast ein Problem.
    Da ein Nein in dem Fall wirklich ein Problem darstellt, lassen wir das an der Stelle mal kurz weg.
    Ein Ja heißt, dass bei deinem neuen Frontend beim Auslesen was schief läuft, das ist deutlich einfacher zu beheben, als wenn alle Daten in der Datenbank falsch kodiert sind (vielleicht sogar noch auf zwei Varianten - vor dem Umzug und nach dem Umzug).

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Original geschrieben von ghostgambler

      Erstmal gilt es zu überprüfen, ob die Daten in der Datenbank korrekt kodiert sind - das geht am besten mit PMA. Datensatz auswählen, angucken, Sonderzeichen korrekt? Ja - gut, alles fein; Nein - schlecht, du hast ein Problem.
      Da ein Nein in dem Fall wirklich ein Problem darstellt, lassen wir das an der Stelle mal kurz weg.
      Ein Ja heißt, dass bei deinem neuen Frontend beim Auslesen was schief läuft, das ist deutlich einfacher zu beheben, als wenn alle Daten in der Datenbank falsch kodiert sind (vielleicht sogar noch auf zwei Varianten - vor dem Umzug und nach dem Umzug).
      Ja, sorry, das hätt' ich eben schon dazuschreiben sollen, hab ich vergessen.

      Also in PMA sinds wunderschöne Sonderzeichen, so wie sie sein sollten!
      Die Musikreview Seite

      hi, i'm a signature virus. copy me into your signature to help me spread.

      Kommentar


      • #4
        Dann ist dein neues Frontend nicht durchgängig UTF8 *shrug*

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          zum frontend muß ich sagen:

          das ganze läuft auf smarty, und die kaputten umlaute sind ausschließlich im db-inhalt, wenn ich ein paar ä,ö,ü,„,“ direkt ins template schreibe geht das klar...

          wo kann ich denn noch utf8 vergessen haben?

          .htacces
          AddCharset utf-8 .php
          AddType text/css;charset=utf-8 .css .php .php5
          AddType text/html;charset=utf-8 .html
          index.php
          header("Content-type: text/html; charset=utf-8");
          achja, im xhtml code hab ich natürlich auch
          <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
          wenn irgendwas aus phpinfo() relevant ist sagt mir bitte bescheid.

          gibt es irgendwas was jetzt noch utf8 sein muß? es klingt für mich dch arg nach der mysql-anbindung, sonst würd es ja auch die sonderzeichen im template schrotten, oder?
          Zuletzt geändert von Tartax; 26.09.2007, 09:24.
          Die Musikreview Seite

          hi, i'm a signature virus. copy me into your signature to help me spread.

          Kommentar


          • #6
            Ja du hast was vergessen, aber ich wiederhole mich ungern, demnach Suchfunktion nach Posts von mir.

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Hast du deine Verbindung auch auf UTF-8 gestellt?

              Kommentar

              Lädt...
              X