Moin Moin !
Wie wäre es, wenn ich in PHP alles mit base64_encode() umwandle, die paar enstehenden Sonderzeichen noch maskiere (z.B. / - wenn ich nur wüßte wie, hehe) und diesen String speichere? Dann kann ich in mySQL nach normalen Buchstaben und Zahlen suchen. Hat da jemand Erfahrungen mit?
Gute Idee, schlechter Algorithmus. Base64 verteilt 3x 8 Bit auf 4x 6 Bit (plus zwei mehr oder weniger konstante Bits, um es nach Text aussehen zu lassen), d.h. je nach Position im Text und umgebenden Zeichen hat ein beliebiges Zeichen diverse Codierungen.
Anderer Ansatz à la URL-encoding:
"Text speichern" ist: Ersetze im Text alle Zeichen, die nicht Leerzeichen, Buchstabe (A-Z,a-z) oder Ziffer (0-9) sind, durch Unterstrich, gefolgt von der hexadezimalen Darstellung des Zeichens (@ => _40, % => _25, _ => _5F). Speichere den veränderten Text.
"Text laden" ist: Ersetze Unterstrich gefolgt von zwei Hex-Ziffern (0-9A-Fa-f) durch das entsprechende Zeichen (WM_5FQUIT => WM_QUIT). Gebe den veränderten Text zurück.
"Text suchen" ist: Ersetze im Text wie oben alle Sonderzeichen wie in "Text speichern", suche mit dem veränderten Suchbegriff in der Datenbank.
Problem: Du nimmst hierbei explizit eine Codierung an (meistens wohl ISO-8859-1 oder -15). In der Regel stört das nicht, aber wenn das Projekt zu sehr wächst und mal nach Osteuropa muß, hast Du erstmal verloren.
Alexander
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".