Sehr gut, so kommt man weiter, Danke.
Nochmals explizit die Frage:
Welches Character-Set (Zeichensatz) hast du bei Installation angegeben ?
Ich habe nicht auswendig im Kopf wie das an der Stelle in der Installationsroutine genau heißt und ob man was auswählen muß oder etwas frei eintragen kann. Also anders gefragt: Was steht in der
/includes/configure.php bei DB_SERVER_CHARSET ?
Wenn da
utf8 steht die Default-Collation in der DB jedoch
utf8mb4_general_ci ist könnte es da bereits ein Problem geben. Ich weiß nicht was das DBMS dann genau macht, denn eigtl. ist die Collation
utf8mb4_general_ci dem Character-Set
utf8mb4 zugeordnet.
Kannst ja mal sicherheitshalber diesen Befehl in phpMyAdmin in der betroffenen DB absetzen:
SHOW VARIABLES LIKE 'character_set_database';
und schauen was da bei "value" ausgegeben wird.
Auch wenn du, nachdem du die defekten Umlaute mittels phpMyAdmin gefixt hast einfach weitermachen kannst, dein Shop wird normal laufen, müssen wir die Ursache herausfinden, damit das nicht noch weiteren Anwendern passiert.
Allerdings noch einen Tipp:
Nach
Ticket #2351 solltest du die Tabellen auf MyISAM umstellen anstatt InnoDB zu verwenden, es sei denn du bist auf MySQL 8.0 oder MariaDB 10.2.4, wo der Bug gefixt ist.
Wenn du dich dafür entscheidest kannst du folgendes Skript verwenden, ins Root des Shops laden und im Browser aufrufen. Danach Skript wieder löschen.
<?php/*************************************************************************
* file: alter_engine.php
* path: root of shop
* use: convert database tables to engine in config
*
* © copyright noRiddle
*************************************************************************/include 'includes/application_top.php';//config$excl_arr = array(); //exclude tables$engine = 'MyISAM'; // InnoDB$query = xtc_db_query
("SHOW TABLES");while($result = xtc_db_fetch_array
($query)) { foreach($result as $key => $table) { if(!in_array($table, $excl_arr)) { if(xtc_db_query
("ALTER TABLE " . $table . " ENGINE = ".$engine)) { echo $key . ' » ' . $table . ': - converted to ENGINE '.$engine.'<br />'; } else { echo $key . ' » ' . $table . ': - conversion to ENGINE '.$engine.' failed <br />'; } } }}?> Ich "bettele" ja schon länger darum, daß man bei Installation zumindest die ENGINEs der Tabellen festlegen sollte.
Gruß,
noRiddle