Twitter の API からツイート データを取得し、それを MySQL データベースに保存する Django アプリがあります。私が知る限り (私はまだ文字エンコーディングのより細かい点について頭を悩ませています)、MySQL エンコーディングと照合を含め、どこでも UTF-8 を使用しています。 4 バイトのエンコーディングを使用します。それらを保存しようとすると、Django から次の警告が生成されます。
/home/biggleszx/.virtualenvs/myvirtualenv/lib/python2.6/site-packages/django/db/backends/mysql/base.py:86: 警告: 不正な文字列値: '\xF0\x9F\x98\xAD I ...' 行 1 の列 'text' に対して return self.cursor.execute(query, args)
私は MySQL 5.1 を使用しているので、 5.5 にアップグレードしない限り、 utf8mb4の使用はオプションではありません。これはもはや正確ではないかもしれませんが)。また、影響を受ける列で TEXT の代わりに BLOB を使用するようアドバイスしている人々も見てきました。
私の質問は、つぶやきの内容を 100% 保存することをあまり気にしないと仮定して、すべての絵文字文字を除外し、由緒ある などのマルチバイト文字以外の文字に置き換える方法はありWHITE MEDIUM SMALL SQUARE (U+25FD)
ますか? 私の現在の設定では、これがそのデータを保存する最も簡単な方法だと思いますが、別の明白な解決策が欠けている場合は、ぜひ聞いてください!
参考までに、Ubuntu 10.04.4 LTS でストック Python 2.6.5 を使用しています。sys.maxunicode
は 1114111 なので、UCS-4 ビルドです。
読んでくれてありがとう。