Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Umlautprobleme nach Umstellung auf utf8

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Umlautprobleme nach Umstellung auf utf8
    am: 04. Dezember 2014, 19:51:18
    v1.06 rev 4642 SP2 (nachträglich auf utf8 umgestellt)

    Morgen früh ist Termin zum Shopstart - wollte gerade nochmal die Zahlungsweisen unter Module - Zahlungsoptionen prüfen. Jetzt kommt diese Fehlermeldung!

    Weiß vielleicht zufällig jemand was da los ist und wo ich was machen muß um das wieder zu richten?

    Schon mal ein riesen Danke wenn jemand kundiges so spontan wäre!!

    Code: PHP  [Auswählen]
     1267 - Illegal mix of collations (latin1_german1_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

    SELECT orders_status_id FROM orders_status WHERE language_id = "2" AND orders_status_name = "Pr�fung notwendig" LIMIT 1

    [MOD SQL Error]


    Linkback: https://www.modified-shop.org/forum/index.php?topic=31673.0

    Godzilla

    • Schreiberling
    • Beiträge: 489
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #1 am: 04. Dezember 2014, 20:15:37
    Weiß vielleicht zufällig jemand was da los ist...

    Steht hier:
    Zitat
    Illegal mix of collations (latin1_german1_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)

    und zeigt sich hier:
    Zitat
    Pr�fung notwendig

    und wo ich was machen muß um das wieder zu richten?

    Das ü hat einen falschen Zeichensatz (siehe Fehlermeldung) und muss entsprechend im Modul und/oder Adminbereich geändert werden.

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #2 am: 04. Dezember 2014, 20:34:54
    Hallo WeXsler

    Wie ich das sehe, hast Du in der Datenbanktabelle 'orders_status' Kollation 'utf8_general_ci' eingestellt, aber in der zugehörigen Spallte 'orders_status_name' Kollation 'latin1_german1_ci', die Spalte sollte aber die gleiche Kollation haben wie die Tabelle.

    Gruss
    Hanspeter

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #3 am: 04. Dezember 2014, 20:41:29
    ok, die Tabelle order_status habe ich im phpmyadmin gefunden - auch die zugehörige Spalte orders_status_name . Ich sehe da nur nirgends latin1_german1_ci. Wo finde ich die Einstellung und kann das auf utf8 umstellen?

    hpzeller

    • Experte
    • Beiträge: 4.130
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #4 am: 04. Dezember 2014, 20:50:04
    Mit phpMyAdmin Tabelle 'orders_status' auswählen, dann oben auf Menüpunkt [Struktur] klicken, dann solltest Du die Kollationen der Spalten sehen und durch klick auf Bearbeiten auch ändern können.

    Zitat
    ... und kann das auf utf8 umstellen?
    Wenn alles andere auch 'utf8_general_ci' ja.

    Gruss
    Hanspeter

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #5 am: 04. Dezember 2014, 21:11:49
    Ich hätte gerade Lust dem Helfer in höchster Shopnot zu umarmen und abzubusserln  :-)

    ... wenn ich eine Frau wäre ...

    Aber so belasse ich es mal lieber bei einem männlichen und nicht weniger herzlichem Dankeschön Hanspeter!!

    Werde wohl die Spalten aller Tabellen überprüfen müssen ... . Das habe ich bisher natürlich nicht gemacht. Aber der Rest sieht eigentlich gut aus. Wir werden sehen. Der nächste Hilfeschrei kommt bestimmt  :panic:

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #6 am: 05. Dezember 2014, 10:18:55
    Hallo,

    jetzt habe ich gesehen, dass wirklich ALLE Tabellen auf utf8_unicode_ci eingestellt sind - das soll ja auch so sein - aber ALLE zugehörigen Spalten stehen auf latin1_german1_ci ! Einzig die eine Spalte in der orders_status hatte ich ja gestern auf utf8_unicode_ci eingestellt.

    Weder im Admin noch in der Front, kann ich im Augenblick irgendwelche Probleme oder Umlautschwierigkeiten ersehen.

    Sollte ich trotzdem alle Spalten auf utf8_unicode_ci umstellen???

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #7 am: 05. Dezember 2014, 19:13:00
    Mache einfach folgendes:
    Kopiere den folgenden Code in eine Datei z.B. namens convert_to_utf8.php und lade diese ins Root-Verzeichnis des Shops.
    Die Datei rufst du dann im Browser auf und Schwupps sind alle Tabellen richtig eingestellt.

    Code: PHP  [Auswählen]
    <?php
    include 'includes/application_top.php';

    //BOC set all tables to collation utf8_general_ci and convert contents to utf8, noRiddle
    $query = xtc_db_query("SHOW TABLES");
    while ($result = xtc_db_fetch_array($query)) {
        foreach ($result as $key => $table) {
            if(xtc_db_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci")) {
                echo $key . ' &raquo; ' . $table . ': - converted to UTF-8 and collation utf8_general_ci <br />';
            } else {
                echo $key . ' &raquo; ' . $table . ': - conversion to UTF-8 and collation utf8_general_ci failed <br />';
            }
        }
    }
    //EOC set all tables to collation utf8_general_ci and convert contents to utf8, noRiddle
    ?>

    Gruß,
    noRiddle

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #8 am: 05. Dezember 2014, 19:58:03
    Hallo noRiddle,

    habe ich gerade ausprobiert. Coole Sache dass! Danke! Jetzt gibt es aber zwei Merkwürdigkeiten - vielleicht nicht schlimm und korrigierbar?

    Auf der Admin-Startseite rechte Spalte (und in der Admin-Shopansicht) hat sich so etwas eingeschlichen:

    ...
    Prüfung notwendig:   0
    Unbestätigt:   0
    Bestätigt:   0
    Pr:   0
    Unbest:   0
    Best:   0
    ...

    Die fetten Teile (3 Zeilen) gab es vorher nicht und vor dem Umlaut hören die auch einfach auf!

    Und in der Datenbank gibt es ein paar Fragezeichen (sh. Bild) :-(

    Vielleicht gehört das ja so - allein vorstellen kann ich mir nicht, dass das richtig ist. Die Shopfront sieht aber immer noch gut aus!

    Die Portierung der alten Domain geschieht auch erst um 2.00 Uhr - von daher habe ich sowieso noch ein bisschen Zwangspause und Zeit zum rumrobieren ... .

    Sollte ich das jetzt mal so lassen?

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #9 am: 06. Dezember 2014, 00:26:20
    ok, habe gerade nochmal ein älteres Backup eingespielt und siehe da, die Fragezeichen - an die 700 in der Datenbank laut Suchergebnis - waren da auch schon da :-( Da ist wohl etwas im Prozess der UTF8-Umstellung schief gegangen. Allein 656 Treffer in der Tabelle banktransfer_blz. :-(

    Ich fürchte da ist Handarbeit und ein wenig Raterei angesagt ... . Hat vielleicht jemand eine bessere Idee das wieder hinzubekommen?? Your Welcome :-)

    In diesem Zusammenhang scheint auch das hier zu stehen:
    ...
    Prüfung notwendig:   0
    Unbestätigt:   0
    Bestätigt:   0
    Prüfung notwendig:   0
    Unbestätigt:   0
    Bestätigt:   0
    Pr:   0
    Unbest:   0
    Best:   0
    ...

    Da sich hier auch mehrfache Anzeige der Begriffe Unbestätigt, Bestätigt, Prüfung notwendig zeigen, vermute ich, dass es sich hier um meine Testbestellungen gehandelt hat, die ich wieder gelöscht hatte. Warum das dann stehen bleibt, weiß ich nicht. Habe die mehrfachen Einträge jetzt einfach mal in der Datenbank Tabelle order_status gelöscht. Hoffe einfach jetzt mal, dass das im Produktivbetrieb morgen nicht wieder alles auseinanderhaut ... . Na wird schon irgendwie werden.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #10 am: 08. Dezember 2014, 15:04:29
    Was steht in den Dateien /includes/configure.php und /admin/includes/configure.php unten bei
    Code: PHP  [Auswählen]
    define('DB_SERVER_CHARSET', '???');
    Sollte dort 'latin1' stehen, ändere es in 'utf8'.

    Was steht im Backend des Shop bei
    Land /Steuer => Sprachen
    im Feld 'charset' (= 'meta-content' in der Übersicht) ?
    Dort sollte utf-8 stehen bei allen verwendeten Sprachen.

    Was die Fehler in der DB betrifft mußt du sie von Hand korrigieren, denn die waren da ja bereits vorher drin, ohne Ausführung meines Skriptes. DAs Skript kann natürlich bereits zerstörte Umlaute und Sonderzeichen nicht reparieren.

    Gruß,
    noRiddle

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #11 am: 08. Dezember 2014, 15:20:19
    Hallo noRiddle,

    das Skript hat wunderbar gearbeitet! Gibt es eigentlich auch einen SQL-Befehl, der evtl. noch vorhandene Latin o.ä. Umlautkonvertiten in der DB automatisch in utf8 wandeln kann??

    In den /includes/configure.php und /admin/includes/configure.php steht utf8.
    Unter Land /Steuer => Sprachen auch utf8.

    Wenn ich das derzeit richtig sehe, ist die ein oder andre php nicht auf utf8 oB konvertiert worden. Hatte das Thema gestern auch mit dem Einbau des aktuellen Sofortüberweisung-Moduls. Da gab es u.a. genau diese vor dem Umlaut abgebrochenen Orderstatusanzeigen. Nachdem ich heute alle in Frage kommenden Dateien des Moduls auf utf8 oB konvertiert, hochgeladen und installiert hatte und die abgebrochenen Reste aus der Datenbank gelöscht habe, war der Effekt verschwunden. Alles scheint im Augenblick zu funktionieren. Der Livebetrieb wird aber sicher noch das ein oder andere in den kommenden Tagen hervorbringen ... .

    Danke für Deine Hilfe!

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #12 am: 13. Februar 2015, 11:32:47
    @noriddle:

    keine Ahnung warum, aber Dein Script hatte mir einige Tabellen NICHT umgestellt!
    Anhand der betroffenen Tabellen (leere oder Tabellen ohne Texte, bzw. Tabellen die kaum Text enthalten) vermute ich, dass mysql abbricht wenn CONVERT TO CHARACTER SET utf8 nichts fand zum konvertieren und das COLLATE utf8_general_ci dann gar nicht mehr ausgeführt wird.
    Was mir auch nicht gefallen hat, die Datenbank selbst stand danach bei mir auf latin

    Neues Script:
    Code: PHP  [Auswählen]
    <?php
    include 'includes/application_top.php';
     
    //BOC set all tables to collation utf8_general_ci and convert contents to utf8, noRiddle
    $query = xtc_db_query("SHOW TABLES");
    $fail=false;
    while ($result = xtc_db_fetch_array($query)) {
            foreach ($result as $key => $table) {
                    if(xtc_db_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci")) {
                            echo $key . ' &raquo; ' . $table . ': - converted to UTF-8 and collation utf8_general_ci <br />';
                            xtc_db_query("ALTER TABLE " . $table . " COLLATE utf8_general_ci");
                    } else {
                            echo $key . ' &raquo; ' . $table . ': - conversion to UTF-8 and collation utf8_general_ci failed <br />';
                            $fail=true;
                    }
            }
    }
    if (!$fail) {
            if ( xtc_db_query("ALTER DATABASE " . DB_DATABASE . " DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci")) {
                    echo "Datenbank konvertiert <br />";
            } else {
                    echo "Datenbank konvertierung fehlgeschlagen <br />";
            }
    }

    //EOC set all tables to collation utf8_general_ci and convert contents to utf8, noRiddle
    ?>

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.745
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #13 am: 13. Februar 2015, 17:04:40
    Wenn die Ausgabe nach Ausführung des Skriptes korrekt ist, also für jede Tabelle dort das Folgende ausgegeben wird
    Tables_in_WAS_WEISS_ICH >> TABLE_NAME: - converted to UTF-8 and collation utf8_german1_ci sollte das Skript nicht abgebrochen haben.

    Habe das Skript schon mehrfach (auch modifiziert für latin1) benutzt um DB-Probleme zu fixen.
    Es lief immer einwandfrei.

    Man weiß aber ja nie, interessiert mich warum nicht alle Tabellen konvertiert wurden...
    Bereits "defekte" Zeichen in der DB, also Zeichen die gar nicht mehr erkannt werden, können übrigens nicht umgewandelt werden.

    Zitat von: Bonsai
    Was mir auch nicht gefallen hat, die Datenbank selbst stand danach bei mir auf latin
    Wie das ?, bist du sicher, daß das nicht schon vorher so war ?
    Und was genau meinst du mit "stand" "auf latin1", wo genau ?
    Meinst du den "Server Zeichensatz" ?

    Für alle:
    Hier ist übrigens mal eine Aufstellung von mir gemacht worden was man beachten/tun muß um einen Shop auf UTF-8 umzustellen.

    Gruß,
    noRiddle

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Re: Umlautprobleme nach Umstellung auf utf8
    Antwort #14 am: 13. Februar 2015, 17:09:25
    Code: PHP  [Auswählen]
    var_dump(xtc_db_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"));
    Brachte true und die Tabelle war immer noch latin
    Erst ein Durchlauf ohne CONVERT TO CHARACTER SET utf8 brachte einen Erfolg. Das ist vermutlich ein mysql Bug. Habe im anderen Thread die mysql Versionen geschrieben.
    0 Antworten
    1912 Aufrufe
    14. Juni 2015, 11:47:39 von VersPack
    12 Antworten
    8486 Aufrufe
    19. März 2016, 11:56:23 von 0815
    3 Antworten
    398 Aufrufe
    21. März 2024, 09:40:26 von KJoe
    4 Antworten
    2830 Aufrufe
    26. August 2014, 17:59:03 von Aladin
               
    anything