DjangoでMySQLに絵文字を保存

公開日: : 最終更新日:2015/08/12 Python , ,

Pocket

Twitter関連のプログラムを書いていたのですが、絵文字を含むツイートをDBに保存しようとするとエラーがでました。
調べてみると、MySQLのutf8は貧弱なもので、4バイトの絵文字を扱うにはMySQL 5.5から追加されたutf8mb4というcharacter setを使わなくてはならないようです。

参考:blog.k11i.biz: UTF-8 エンコードされた絵文字を MySQL / JDBC で取り扱うには?

とりあえずMySQLをアップデートして既存テーブルを

でutf8mb4に変えた後、改めてDjangoから絵文字含む文字列を保存しようとしたところ、

というエラーが。
MySQL-pythonパッケージがMySQLの共有ライブラリを使用しているので、再インストール(再コンパイル)しなきゃいけなかったようです。
再インストールしたら無事に絵文字含む文字列を保存することができました。

[追記 2015/08/12]
上記のエラーがまた再発したのですが、データベースAPIをMySQL-Pythonからmysqlclientに変えたら治りました。

関連記事

no image

pipでThe C extension could not be compiledとかいうWARNING

CentOS 6.5にpipでpython-twitterを入れようとしたら、依存パッケージのsim

記事を読む

no image

PySideインストール後にImportError

QtのPythonバインディングにはPyQtとPySideがあって、元々あったのはGPLのPyQtだ

記事を読む

no image

Django 1.7の新機能Migrations

Django 1.6まででは作成後のモデルに変更を加える場合、手動でSQLを発行するかsouthのよ

記事を読む

no image

Djangoのタイムゾーンサポートについて調べた

Djangoの1.4以降で追加されたタイムゾーンサポートのことがよくわかってなかったのでドキュメント

記事を読む

no image

Djangoでreverse後のURLにスクリプト名が入ってしまう

レンタルサーバー上にCGIとしてDjangoを動かそうとしていて、このチケットのdjango.cgi

記事を読む

no image

Djangoのカスタムコマンドをコード内から呼ぶ

ドキュメントにまんま書いてあるけど一応メモ。 カスタムコマンド内から他のコマンドを呼び出したい

記事を読む

no image

python-twitterでツイート時刻(created_at)からローカルのdatetimeを作成する

python-twitterのStatusクラスからの投稿時刻の取り方には二通りあり、それぞれUTC

記事を読む

no image

Python、DjangoでTwitter認証(Sign in with Twitter)するサンプル

トップページから認証リンクを押すとサインインを求められ、ユーザーのアクセストークンをDBに保存して何

記事を読む

no image

Django 1.5でDEBUG=Falseにしたら動かないとかstaticが出ないとか

Django 1.5でプロジェクト作って少しして試しにDEBUG=Falseにしてみたら「Serve

記事を読む

no image

python-twitterで複数media(画像)を扱う

現時点で、python-twitterをpipで入れると2.0が入りますが、extended ent

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

no image
gでgit status、続く引数があったらgitに渡すシェルスクリプトを実装したメモ

最近コーディング時に腕の疲れを感じるようになってきたので、アホみたいで

no image
JavaでBase32のデコーダーを実装

今書いてるプログラムでBase32エンコードされた文字列をデコードをす

no image
Bashのプロンプトを変えずにscreenのウィンドウタイトルだけ変える

先にコード例。.bashrcに書きます。 この例ではウィンドウ名

no image
Google Play Musicアプリの音楽ライブラリから特定のフォルダを除外する方法

Google Play Musicアプリはデフォルトでローカル端末上の

no image
PythonでC++のstd::mapみたいな挙動が欲しい

最近競技プログラミングの問題をちょろちょろやってて、それでC++を使っ

→もっと見る

PAGE TOP ↑