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.
- Python, wandele 4-Byte-Zeichen um, um den MySQL-Fehler "Incorrect string value:" zu vermeiden
- Warnung ausgelöst durch Einfügen 4-Byte-Unicode zu mysql
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!