Así que resulta que esto ha sido respondido varias veces, solo que no tenía el Google-fu correcto para encontrar las preguntas existentes.
- Python, convierta caracteres de 4 bytes para evitar el error de MySQL "Valor de cadena incorrecto:"
- Advertencia generada al insertar Unicode de 4 bytes a mysql
Gracias a Martijn Pieters , la solución provino del mundo de las expresiones regulares, específicamente este código (basado en su respuesta al primer enlace anterior):
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)
El carácter que estoy reemplazando es el WHITE MEDIUM SMALL SQUARE (U+25FD)
, FYI, pero podría ser cualquier cosa.
Para aquellos que no están familiarizados con UCS, como yo, este es un sistema para la conversión de Unicode y una compilación dada de Python incluirá soporte para la variante UCS-2 o UCS-4, cada una de las cuales tiene un límite superior diferente en soporte de caracteres.
Con la adición de este código, las cadenas parecen persistir perfectamente en MySQL 5.1.
¡Espero que esto ayude a alguien más en la misma situación!