Igäl
Erfahrenes Mitglied
Hallo Menschen
Lange habe ich versucht, viele Foreneinträge gelesen und einiges umgesetzt oder zumindest umzusetzen versucht. Das Problem hatten schon viele, aber irgendwie hat mir nichts geholfen.
Ich habe ein Textfeld, wo der User einen String eingeben kann. Mit "LIKE %EINGABE%" wird dann eine Tabelle, die Waren enthält durchsucht. Das funktioniert wunderbar, ausser ich suche etwas mit Umlauten.
Der Status quo sieht folgendermassen aus:
- meta-charset (HTML) ist auf "utf8";
- mysqli_set_charset (PHP) ist auf "utf8";
- alle Tabellen und Felder in der Datenbank sind auf "utf8mb4_unicode_ci";
- im entsprechenden Feld steht "Käse, Laib";
Wenn ich "Käse" suche, findet er den Eintrag "Käse, Laib" in der Tabelle nicht. Suche ich mit "Kase", findet er ihn ohne Probleme.
Die Daten sind via CSV (aus Excel exportiert) in die Datenbank importiert worden. Dateityp "CSV UTF-8 (durch Trennzeichen getrennt)".
Versucht habe ich schon "LIKE BINARY" (dann findet er gar nichts mehr) und mysqli_query(SET NAMES ...). Beides ohne Erfolg.
Wo also könnten noch Stolpersteine sein? Ich bin mit meinem latin1_bin am Ende.
Danke für Unterstützungsbemühungen und allen ein schönes Wochenende.
Gruss, Dä Igäl
PS: Was mir gerade noch auf- und eingefallen ist...
Waren kann ich auch über eine Maske auf der Homepage in die Datenbank eintragen. Waren, die so eingetragen worden sind, werden korrekt gefunden. Sprich: nur die Einträge, die via CSV importiert worden sind, bocken rum und deren Umlaute lassen sich nicht finden...
PSS: Was ich wohl noch anfügen muss...
Die Excel-CSV-Exportdatei habe ich jeweils im Notepad++ noch modifiziert. Namentlich habe ich die Spaltennamen herausgelöscht, dann abgespeichert und dann via Importfunktion von PhpMyAdmin in die Datenbank eingefügt. Habe ich damit evtl. eine Zeichencodierung der CSV-Datei zerstört?
Lange habe ich versucht, viele Foreneinträge gelesen und einiges umgesetzt oder zumindest umzusetzen versucht. Das Problem hatten schon viele, aber irgendwie hat mir nichts geholfen.
Ich habe ein Textfeld, wo der User einen String eingeben kann. Mit "LIKE %EINGABE%" wird dann eine Tabelle, die Waren enthält durchsucht. Das funktioniert wunderbar, ausser ich suche etwas mit Umlauten.
Der Status quo sieht folgendermassen aus:
- meta-charset (HTML) ist auf "utf8";
- mysqli_set_charset (PHP) ist auf "utf8";
- alle Tabellen und Felder in der Datenbank sind auf "utf8mb4_unicode_ci";
- im entsprechenden Feld steht "Käse, Laib";
Wenn ich "Käse" suche, findet er den Eintrag "Käse, Laib" in der Tabelle nicht. Suche ich mit "Kase", findet er ihn ohne Probleme.
Die Daten sind via CSV (aus Excel exportiert) in die Datenbank importiert worden. Dateityp "CSV UTF-8 (durch Trennzeichen getrennt)".
Versucht habe ich schon "LIKE BINARY" (dann findet er gar nichts mehr) und mysqli_query(SET NAMES ...). Beides ohne Erfolg.
Wo also könnten noch Stolpersteine sein? Ich bin mit meinem latin1_bin am Ende.
Danke für Unterstützungsbemühungen und allen ein schönes Wochenende.
Gruss, Dä Igäl
PS: Was mir gerade noch auf- und eingefallen ist...
Waren kann ich auch über eine Maske auf der Homepage in die Datenbank eintragen. Waren, die so eingetragen worden sind, werden korrekt gefunden. Sprich: nur die Einträge, die via CSV importiert worden sind, bocken rum und deren Umlaute lassen sich nicht finden...
PSS: Was ich wohl noch anfügen muss...
Die Excel-CSV-Exportdatei habe ich jeweils im Notepad++ noch modifiziert. Namentlich habe ich die Spaltennamen herausgelöscht, dann abgespeichert und dann via Importfunktion von PhpMyAdmin in die Datenbank eingefügt. Habe ich damit evtl. eine Zeichencodierung der CSV-Datei zerstört?
Zuletzt bearbeitet: