Klaus: Problem mit Umlauten und Collations

Beitrag lesen

SET CHARACTER SET kannst du wieder vergessen, das macht ein paar Details anders als man sie normalerweise braucht. SET NAMES brauchst du nur, wenn du mysql(i)_set_charset() nicht zur Verfügung hast, also in ganz alten PHP-Versionen.

mysql_set_charset() habe ich zur Vefügung.

Dann wird es wohl so sein, dass das DBMS dein UTF-8 als Latin1 interpretiert. Das sieht auf den ersten Blick problemlos aus, aber der phpMyAdmin dürfte dann nicht mitspielen, weil er korrekt UTF-8 mit dem DBMS spricht, dann aber das vom DBMS angenommene Latin1 nochmal nach UTF-8 kodiert, woraufhin du doppelt-UTF-8-kodierte Zeichen hast. Oder wenn er Latin1 verwendet, geht er davon aus, solches zu bekommen und kein UTF-8, was auch zu Murks in der Anzeige führt.

Im PhpMyAdmin kann ich mir sowohl die Tabelle in DB1 als auch die View auf die Tabelle in DB2 mit korrekten Umlauten anzeigen lassen.

Weil du im UTF-8-Teil keine Zeichenkodierung auf der Verbindung angegeben hast und MySQL dein von Latin1 ausging, hast du nun Murks in den Feldern stehen. Diesen Murks umkodieren zu wollen macht ihn nicht besser.

Wenn PhpMyAdmin alle Umlaute in allen Tabellen korrekt anzeigt, warum sollte dann Murks in den Feldern stehen?

Was muss ich denn jetzt tun, damit die Anzeige korrigiert wird?
Den Verbindungsaufbau in diesem Modul suchen und nochmal explizit das Character Set setzen?

Ich gehe mal davon aus, dass der alte Teil unangefasst auf Latin1 bleiben und der neue UTF-8 verwenden soll.

Das ist richtig, zumindest vorerst. Mittelfristig werde ich schauen, wie die Tabellen nach einer Sicherheitskopie auf UTF8 umgesetzt aussehen, bzw. der Inhalt

Dann müsstest du erst einmal mit einem Programm, das korrekt mit MySQL spricht (phpMyAdmin zum Beispiel) alle Nicht-ASCII-Zeichen (Umlaute etc.) korrigieren. Dann muss der neue Teil die Verbindungskodierung UTF-8 bei jedem Verbindungsaufbau aushandeln.

Ich verstehe leider nicht, inwiefern ich wo etwas inhaltlich korrigieren kann, da der Inhalt der Tabelle aus DB1 unangetastet bleiben muss und die View ja selbst keine Daten enthält.
Aber ich werde versuchen, im neuen Modul die Verbindungskodierung immer mitzugeben.
Im alten Teil ist das leider sehr sehr umfangreich, da der Verbindungsaufbau an sehr vielen Stellen durchgeführt wird. (Ist leider so gewachsen und kaum noch korrigierbar)

0 61

Problem mit Umlauten und Collations

Klaus
  • datenbank
  1. 0
    Auge
    1. 0
      Klaus
      1. 1
        dedlfix
      2. 0
        Tom
        1. 0
          Auge
          1. 0
            Tom
            1. 0
              Auge
              1. 0
                dedlfix
                1. 0
                  Tom
                  1. 0
                    dedlfix
                    1. 0
                      Klaus
                      1. 0
                        dedlfix
                        1. 0
                          Klaus
                          1. 0
                            dedlfix
                            1. 0
                              Klaus
                              1. 0
                                Tom
                                1. 0
                                  Klaus
                                  1. 0
                                    Tom
                                    1. 0
                                      dedlfix
                                      1. 0
                                        Tom
                                        1. 0
                                          Klaus
                                          1. 0
                                            Tom
                                            1. 0
                                              Klaus
                                              1. 0
                                                Tom
                                                1. 0
                                                  Klaus
                                                  1. 0
                                                    Tom
                                                    1. 0
                                                      Klaus
                                                      1. 0
                                                        Auge
                                                        1. 0
                                                          dedlfix
                                                          1. 0
                                                            Auge
                                                            1. 0
                                                              dedlfix
                                                        2. 0
                                                          Klaus
                                                          1. 0
                                                            Tom
                                                      2. 0
                                                        Tom
                                                        1. 0
                                                          Klaus
                                                          1. 0
                                                            Tom
                                                            1. 0
                                                              dedlfix
                                              2. 0
                                                Auge
                                                1. 0
                                                  dedlfix
                                                  1. 0
                                                    Auge
                                2. 0
                                  dedlfix
                              2. 0
                                Tom
                              3. 0
                                dedlfix
                                1. 0
                                  Klaus
                                  1. 0
                                    dedlfix
                                    1. 0
                                      Klaus
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Klaus
                                          1. 0
                                            dedlfix
                                            1. 0
                                              Klaus
                                              1. 0
                                                Klaus
                                                1. 0
                                                  Auge
                                              2. 0
                                                dedlfix
                          2. 0
                            Tom
                            1. 0
                              dedlfix
                              1. 0
                                Tom
                                1. 0
                                  dedlfix
  2. 0
    dedlfix
    1. 0
      Auge
      1. 0
        dedlfix