Mir ist aufgefallen, dass seit der Umstellung auf Php 7.1.22 die Umlaute in der Emailvorschau in Textform nicht mehr richtig funktionieren. Und auch eine Neuinstallation bringt Umlautfehler.
Nachdem ich keine Änderungen meiner Dateien zu den original Shopdateien finden konnte und der Fehler im Demoshop (PHP 7.0.30) nicht auftrat, hatte ich testweise eine Neuinstallation auf einer anderen Domain getestet. Dabei wurden ohne Änderungen direkt nach der Installation schon die Kundengruppen Händler sowie die Bundesländer falsch geschrieben. Zusätzlich die falschen Umlaute in der Emailvorschau. Nach langem testen hatte ich umgestellt auf PHP 7.0.32 und schon kam der Fehler in der Emailvorschau nicht mehr. Der Rest blieb falsch.
Danach neue Testinstallation mit PHP 7.0.32 bei der Installation und es kamen keine Umlautprobleme bei Händler und Bundesländer und der Emailvorschau als Text.
Da ich aber nicht auf PHP 7.1 verzichten wollte, hab ich weiter gesucht. Letztlich kam das heraus, was ich im
Ticket #1188 zusammengefasst habe.
Fehler, wenn man auf Emailvorschau geht:
[23-09-2018 19:40:21] E_WARNING : LoggingManager: mb_detect_encoding(): Illegal argument in File: /inc/html_encoding.php on Line: 46
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #0 - /includes/external/smarty/smarty_3/sysplugins/smarty_internal_resource_file.php called at Line 162
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #1 - /includes/external/smarty/smarty_3/sysplugins/smarty_template_source.php called at Line 210
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #2 - /includes/external/smarty/smarty_3/sysplugins/smarty_internal_templatecompilerbase.php called at Line 421
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #3 - /includes/external/smarty/smarty_3/sysplugins/smarty_internal_templatecompilerbase.php called at Line 351
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #4 - /includes/external/smarty/smarty_3/sysplugins/smarty_template_compiled.php called at Line 184
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #5 -/includes/external/smarty/smarty_3/sysplugins/smarty_template_compiled.php called at Line 141
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #6 - /includes/external/smarty/smarty_3/sysplugins/smarty_template_compiled.php called at Line 105
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #7 - /includes/external/smarty/smarty_3/sysplugins/smarty_internal_template.php called at Line 206
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #8 - /includes/external/smarty/smarty_3/sysplugins/smarty_internal_templatebase.php called at Line 232
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #9 -/includes/external/smarty/smarty_3/sysplugins/smarty_internal_templatebase.php called at Line 116
[23-09-2018 19:40:21] E_WARNING : LoggingManager: Backtrace #10 -/create_account.php called at Line 482
Fehlermeldung bei Installation mit PHP 7.1.22
[27-09-2018 20:24:29] E_WARNING : LoggingManager: mb_detect_encoding(): Illegal argument in File: /inc/html_encoding.php on Line: 46
[27-09-2018 20:24:29] E_WARNING : LoggingManager: Backtrace #0 - /admin/includes/db_actions.php called at Line 283
[27-09-2018 20:24:29] E_WARNING : LoggingManager: Backtrace #1 - /_installer/install_step1.php called at Line 166
[27-09-2018 20:25:44] E_WARNING : LoggingManager: mb_detect_encoding(): Illegal argument in File: /inc/html_encoding.php on Line: 46
[27-09-2018 20:25:44] E_WARNING : LoggingManager: Backtrace #0 - /_installer/install_step2.php called at Line 342
[27-09-2018 20:25:44] E_WARNING : LoggingManager: mb_convert_encoding(): Illegal character encoding specified in File: /inc/html_encoding.php on Line: 50
[27-09-2018 20:25:44] E_WARNING : LoggingManager: Backtrace #0 -/_installer/install_step2.php called at Line 342
Lösung:
Wahrscheinlich wegen diesem fix in 7.1.22
Fixed bug #76704 (mb_detect_order return value varies based on argument type) und der damit zusammenhängenden
Supported Character Encoding ListeIn Zeile 46 der /inc/html_encoding.php steht
in
steckt
und mb_detect_order wurde geändert.
Es liegt an dieser Zeile in der /inc/html_encoding.php:
define('ENCODE_DEFINED_CHARSETS','ASCII,UTF-8,ISO-8859-1,ISO-8859-15,cp866,cp1251,cp1252,KOI8-R,BIG5,GB2312,BIG5-HKSCS,Shift_JIS,EUC-JP'); Wenn man BIG5-HKSCS daraus entfernt, dann funktioniert die Emailvorschau wieder fehlerfrei und es wird kein Fehler im log geschrieben. Anscheinend wird dieses Charset nicht mehr unterstützt. Oder es gibt noch eine andere Datei im Shopsystem, die die Charsets vorgibt und da steht es nicht drin.
GB2312 steht auch nicht in der Liste der unterstützen Charsets, führt aber nicht zu einem Fehler, wenn es drin bleibt.
Gruß Timm
P.S.
Ich hatte vorher auch testweise die txt Maildatei change_order.txt in utf-8 gespeichert und es kam auch kein Umlautfehler mehr. Das konnte aber nicht die Lösung sein. Torsten hatte mir darauf geschrieben, dass der Shop selbstständig in der Lage ist Dateien in unterschiedlich gespeicherten Charsets zu encoden und decoden durch die html_encoding.php. Sonst hätten wir mit Utf-8 Shops immer Probleme, weil die Maildateien fast alle in iso gespeichert sind. Bevor jemand denkt, dass das hilft.
Linkback: https://www.modified-shop.org/forum/index.php?topic=39531.0