Hi Leute,
ich habe ein ziemliches Problem. Ich habe hier eine Datenbank (MySQL) die als Collation und Charset utf8 hat. Wie wir alle wissen ist bei MySQL utf8 != UTF8 (Man brauch utf8mb4_unicode_ci für echtes UTF8). Dies bedeutet, dass nun von einer App aus Emoji in die Datenbank strömen, diese jedoch nur einen Fehler zurückgibt, da diese Zeichen nicht unterstüzt werden. Nun stehe ich vor der geradezu heroischen Aufgabe auf der einen Seite eine schnelle Lösung zu finden, um die Emoji aus den übergebenen Daten herauszufiltern, auf der anderen Seite muss ich jedoch den einfachst möglichen weg finden 180 Tabellen mittelfristig mit dem echten utf8 kompatibel zu machen, am besten vollautomatisch. Letzteres ist jedoch ein Thema für eine andere Zeit.
Nun also zur Frage, wie filtere ich Emojis und alles andere aus Strings heraus, was nicht der definition von utf8 in MySQL entspricht, ohne dabei zu restirktiv zu sein? Ich habe mir schon überlegt, z.B. nur Alle Zeichen auf der Tastatur zuzulassen, die gerade vor mir liegt, jedoch würde ich dann schon viele europäische Nachbarn verlieren, geschweige denn den rest der Welt. Dann dachte ich mir, ich könnte ja vielleicht MySQL darum fragen, welche Zeichen nun erlaubt sind, lasse mir also eine Liste an erlaubten Zeichen zurückgeben, doch ich finde nirgends im web auch nur eine einfache Tabelle mit den Zeichen die erlaubt sind. Zuletzt habe ich mir gedacht ich könnte ja versuchen einfach den "Emoji-Raum" in Unicode mit
ich habe ein ziemliches Problem. Ich habe hier eine Datenbank (MySQL) die als Collation und Charset utf8 hat. Wie wir alle wissen ist bei MySQL utf8 != UTF8 (Man brauch utf8mb4_unicode_ci für echtes UTF8). Dies bedeutet, dass nun von einer App aus Emoji in die Datenbank strömen, diese jedoch nur einen Fehler zurückgibt, da diese Zeichen nicht unterstüzt werden. Nun stehe ich vor der geradezu heroischen Aufgabe auf der einen Seite eine schnelle Lösung zu finden, um die Emoji aus den übergebenen Daten herauszufiltern, auf der anderen Seite muss ich jedoch den einfachst möglichen weg finden 180 Tabellen mittelfristig mit dem echten utf8 kompatibel zu machen, am besten vollautomatisch. Letzteres ist jedoch ein Thema für eine andere Zeit.
Nun also zur Frage, wie filtere ich Emojis und alles andere aus Strings heraus, was nicht der definition von utf8 in MySQL entspricht, ohne dabei zu restirktiv zu sein? Ich habe mir schon überlegt, z.B. nur Alle Zeichen auf der Tastatur zuzulassen, die gerade vor mir liegt, jedoch würde ich dann schon viele europäische Nachbarn verlieren, geschweige denn den rest der Welt. Dann dachte ich mir, ich könnte ja vielleicht MySQL darum fragen, welche Zeichen nun erlaubt sind, lasse mir also eine Liste an erlaubten Zeichen zurückgeben, doch ich finde nirgends im web auch nur eine einfache Tabelle mit den Zeichen die erlaubt sind. Zuletzt habe ich mir gedacht ich könnte ja versuchen einfach den "Emoji-Raum" in Unicode mit
String.Empty
zu replacen, doch leider sind Emoji mit deren Skinttone- und Gendermodifier (und was es noch so gibt) 3 oder mehr Zeichen lang, und ich habe nicht gerade vor dafür einen Algo zu schreiben der das erkennt, zumal ich davon eh keine Ahnung habe. Wie würdet ihr da nun am besten vorgehen?