Hallo,
ich habe folgendes Problem mit der korrekten Sortierung/Ausgabe von Datensätzen die mit Umlauten beginnen:
Es handelt sich um eine einfache Erweiterung in der Art eines Glossars. Es gibt einen alphabetischen Index und ein Suchfeld.
- bei Klick auf den Index wird ein "SELECT * FROM table WHERE name LIKE '[eingabe]%'" (Begriff begint mit [eingabe]) durchgeführt,
- bei Absenden des Suchfelds ein "SELECT * FROM table WHERE name LIKE '%[eingabe]%'" (Begriff enthält [eingabe]).
Da die Daten in TYPO3 als UTF8 erfasst werden steht in der DB z.B. "Ö" anstatt "Ö". Daraus ergeben sich folgende Fehler:
1) Bei Klick auf "A" im Index werden auch Wörter wie "Öl" selektiert, eben alles was in UTF8 mit "Ã" beginnt
2) "Ö"-Wörter sollten natürlich bei Klick auf "O" erscheinen, "Ü"-Wörter bei Klick auf "U"
3) Bei Absenden der Sucheingabe "öl" wird nur z.B. "Hölzer" gefunden, nicht "Öl", bei Eingabe von "Öl" nur "Öl" und nicht "Hölzer".
Für 1) könnte ich als Workaround mit BINARY arbeiten, womit aber alle mit Sonderzeichen beginnenden Wörter außen vor bleiben. Also kein "Ä" bei "A", "Ö" bei "O" etc.
Da das ganze in sieben Sprachen online gehen soll (darunter spanisch, polnisch, russisch) fällt der Einsatz eines manuellen Regelwerks in der Extension und o.g. Workaround eigentlich aus. Ich vermute mal die Lösung liegt in der richtigen Kombination von CHARSET und COLLATION. Dies könnte ich wiederum in der Extension je nach aktueller Sprachwahl im SELECT berücksichtigen.
Kann mir jemand weiterhelfen?
Greetings
Steffen