Така че се оказва, че на това е отговорено няколко пъти, просто не разполагах с правилния Google-fu, за да намеря съществуващите въпроси.
- Python, преобразувайте 4-байтов знак, за да избегнете грешка в MySQL "Неправилна стойност на низа:"
- Предупреждение, повдигнато чрез вмъкване 4-байтов уникод към mysql
Благодарение на Martijn Pieters , решението идва от света на регулярните изрази, по-специално този код (въз основа на неговия отговор на първата връзка по-горе):
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)
Знакът, с който заменям, е WHITE MEDIUM SMALL SQUARE (U+25FD)
, FYI, но може да бъде всичко.
За тези, които не са запознати с UCS, като мен, това е система за конвертиране на Unicode и дадена компилация на Python ще включва поддръжка за варианта UCS-2 или UCS-4, всеки от които има различна горна граница за поддръжка на знаци.
С добавянето на този код изглежда, че низовете остават добре в MySQL 5.1.
Надявам се това да помогне на някой друг в същата ситуация!