ですから、これは何度か答えられていることがわかりました。既存の質問を見つけるための適切なGoogle-fuを持っていなかっただけです。
MartijnPieters に感謝します 、解決策は正規表現の世界、具体的にはこのコード(上記の最初のリンクに対する彼の回答に基づく)から来ました:
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)
です。 、参考までに、しかし何でもかまいません。
私のようにUCSに慣れていない人のために、これはUnicode変換用のシステムであり、Pythonの特定のビルドには、UCS-2またはUCS-4バリアントのいずれかのサポートが含まれ、それぞれの文字サポートの上限が異なります。
このコードを追加すると、文字列はMySQL5.1で問題なく存続するように見えます。
これが同じ状況で他の誰かに役立つことを願っています!