Предупреждение, вызванное вставкой 4-байтового юникода в mysql.

Посмотрите на следующее:

/home/kinka/workspace/py/tutorial/tutorial/pipelines.py:33: Warning: Incorrect string 
value: '\xF0\x9F\x91\x8A\xF0\x9F...' for column 't_content' at row 1
n = self.cursor.execute(self.sql, (item['topic'], item['url'], item['content']))

Строка '\xF0\x9F\x91\x8Aна самом деле представляет собой 4-байтовый юникод: u '\U0001f62a'. Набор символов mysql - utf-8, но вставка 4-байтового юникода усекает вставленную строку. Я погуглил такую ​​проблему и обнаружил, что mysql до 5.5.3 не поддерживает 4-байтовый юникод, и, к сожалению, у меня 5.5.224. Я не хочу обновлять сервер mysql, поэтому я просто хочу отфильтровать 4-байтовый юникод в python, я пытался использовать регулярное выражение, но потерпел неудачу. Итак, какая-нибудь помощь?

7
задан hippietrail 30 May 2013 в 02:16
поделиться