Zeichensatzproblem bei Datenbankabfrage

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

  • Zeichensatzproblem bei Datenbankabfrage

    Hi

    Habe gerade meine gesamte Website vom Zeichensatz iso-8859-1 auf den Satz utf-8 umgestellt. Auf jeder Seite mit einem Datenbankzugriff erscheint nun bei jedem Umlaut ein Sonderzeichen.

    Hat jemand eine elegante Lösung, wie das Problem zu lösen ist?

    In der MySQL Datenbank wird die Kollation latin1_german1_ci verwendet.
    Server arbeitet mit dem Apache-Webserver.

  • #2
    Kollation ändern oder mit utf8_encode arbeiten. Wobei die erste Lösung natürlich die Bessere ist.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter

      Besten Dank für die schnelle Antwort!

      Habe in der Datenbank testweise utf8_general_ci als Kollation angegeben. Damit wurde das Problem nicht gelöst.

      Die 2. Lösung mit utf8_encode arbeitet bestens. Leider müssen dafür sehr viele Seiten geändert werden. Gibt es ggf. eine Möglichkeit (z. B. via Datei inc_db.php) alle Dateizugriffe automatisch zu encoden?

      Borsi

      Kommentar


      • #4
        PHP-Code:
        mysql_query ('SET NAMES utf8'); 
        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hallo Peter

          mysql_query ('SET NAMES utf-8'); und es funktionierte. Danke!

          Mit Entsetzen habe ich festgestellt, dass ein Teil der Datenbank nicht homogen ist. Teilweise ist ein ü ein ü und manchmal ist ü = ü.

          Da unsere Lösung nur mit der 2. Variante arbeitet die Frage:

          Gibt es eine Möglichkeit innerhalb von MySQL (resp. PHPMyAdmin) alle Umlaute zu entfernen und durch die alternative Schreibweise zu ersetzen?

          Kommentar


          • #6
            Code:
            UPDATE 
              tabelle 
            SET 
              feldname = 
                replace(feldname, 'ü', 'ü');
            So in der Art und ungetestet.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Hallo Peter

              Mein kleines Problem ist gelöst, dafür habe ich jetzt ein grösseres.
              OK, ich weiss jetzt wie weiterfahren.

              Vielen Dank nochmals, Peter!

              Gruss
              Borsi

              Kommentar


              • #8
                Schau dur ggf. mal das hier an. Vielleicht wirst du fündig.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Zitat von Kropff Beitrag anzeigen
                  PHP-Code:
                  mysql_query ('SET NAMES utf8'); 
                  Peter
                  Bei MySQLi wird stattdessen mysqli::set_charset() empfohlen.

                  Kommentar


                  • #10
                    Ja, und für nur MySQL mysql_set_charset:
                    This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X