Het blijkt dus dat dit al een paar keer is beantwoord, ik had gewoon niet helemaal de juiste Google-fu om de bestaande vragen te vinden.
- Python, converteer 4-byte char om MySQL-fout "Onjuiste tekenreekswaarde:"
- Waarschuwing gegenereerd door invoegen 4-byte unicode naar mysql
Met dank aan Martijn Pieters , de oplossing kwam uit de wereld van reguliere expressies, met name deze code (gebaseerd op zijn antwoord op de eerste link hierboven):
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)
Het teken waarmee ik vervang is het WHITE MEDIUM SMALL SQUARE (U+25FD)
, Ter info, maar kan van alles zijn.
Voor degenen die niet bekend zijn met UCS, zoals ik, dit is een systeem voor Unicode-conversie en een bepaalde build van Python zal ondersteuning bieden voor de UCS-2- of UCS-4-variant, die elk een andere bovengrens hebben voor tekenondersteuning.
Met de toevoeging van deze code lijken de strings prima te blijven bestaan in MySQL 5.1.
Ik hoop dat dit iemand anders in dezelfde situatie helpt!