Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich Emoji-Zeichen aus meiner Eingabe filtern, damit ich sie in MySQL <5.5 speichern kann?

Es stellte sich also heraus, dass dies ein paar Mal beantwortet wurde, ich hatte einfach nicht das richtige Google-Fu, um die vorhandenen Fragen zu finden.

Danke an Martijn Pieters , kam die Lösung aus der Welt der regulären Ausdrücke, insbesondere dieser Code (basierend auf seiner Antwort auf den ersten Link oben):

import re
try:
    # UCS-4
    highpoints = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
    # UCS-2
    highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
# mytext = u'<some string containing 4-byte chars>'
mytext = highpoints.sub(u'\u25FD', mytext)

Das Zeichen, durch das ich ersetze, ist das WHITE MEDIUM SMALL SQUARE (U+25FD) , FYI, könnte aber alles sein.

Für diejenigen, die mit UCS nicht vertraut sind, wie ich, ist dies ein System für die Unicode-Konvertierung, und ein bestimmter Python-Build wird entweder die UCS-2- oder die UCS-4-Variante unterstützen, von denen jede eine andere Obergrenze für die Zeichenunterstützung hat.

Mit dem Hinzufügen dieses Codes scheinen die Strings in MySQL 5.1 problemlos zu bestehen.

Hoffe, das hilft anderen in der gleichen Situation!