Как я могу отфильтровать символы Emoji из моего ввода, чтобы я мог сохранить в MySQL <5.5?

У меня есть приложение Django, которое получает твиты из Твиттераs API и сохраняет его в базе данных MySQL. Насколько я знаю (яя все еще думаю о тонкостях кодирования символов)Я использую UTF-8 везде, включая кодирование и сопоставление MySQL, что прекрасно работает, кроме случаев, когда твит содержитEmoji символы, которые я понимаю, используют четырехбайтовую кодировку. Попытка сохранить их приводит к появлению следующих предупреждений от Django:

/home/biggleszx/.virtualenvs/myvirtualenv/lib/python2.6/site-packages/django/db/backends/mysql/base.py:86: Предупреждение: неверное строковое значение: '\ xF0 \ x9F \ x98 \ xAD I ... ' для столбца 'текст' в строке 1 вернуть self.cursor.execute (query, args) I '

м с использованием MySQL 5.1, поэтому с помощьюutf8mb4 ISN»вариант, если я не обновлю до 5.5, который яЯ предпочел бы не только еще (и из того, что ячитаю, Джангоподдержка это нене вполне готов к производству, хотя это может быть не совсем точно). Я'мы также виделилюди советует использовать BLOB вместо TEXT для затронутых столбцов, которые яЯ также предпочел бы не делать, как я полагаю, это повредит производительности.

Мой вопрос в том случае, если яМеня не слишком беспокоит сохранение 100% содержимого твита, есть ли способ отфильтровать все символы эмодзи и заменить их не многобайтовым символом, таким как почтенныйWHITE MEDIUM SMALL SQUARE (U+25FD)? Я полагаю, что это самый простой способ сохранить эти данные, учитывая мои текущие настройки, хотя, если яя пропускаю другое очевидное решение, яБуду рад это услышать!

К вашему сведениюм, используя стандартный Python 2.6.5 на Ubuntu 10.04.4 LTS.sys.maxunicode 1114111, так чтоэто сборка UCS-4.

Спасибо за прочтение.

Ответы на вопрос(4)

Ваш ответ на вопрос