Android デバイスからデータを受信する Rails アプリがあります。日本語の場合、一部のデータが正しく保存されていないことに気付きました。これは、MySQL クライアントと Rails Web サイトで文字どおりの疑問符 (ひし形ではなく) として表示されます。
Railsアプリに接続したデータベースはLatin1に設定されていることがわかりました。Rails は UTF-8 に設定されています。
私は文字エンコーディングについてよく読んでいますが、それらはすべて、データが何らかの形で少し読みやすいと述べています。ただし、私のものは文字通りの疑問符だけです。また、Web 上のいくつかの方法を使用してデータを UTF-8 に変換しようとしても、何も変わりません。データベースに書き込まれるときに、データが疑問符に変換されると思われます。
MySQL コンソールからのサンプル出力:
select * from foo where bar = "foobar";
+-------+------+------------------------+---------------------+---------------------+
| id | name | bar | created_at | updated_at |
+-------+------+------------------------+---------------------+---------------------+
| 24300 | ???? | foobar | 2012-01-23 05:04:22 | 2012-01-23 05:04:22 |
+-------+------+------------------------+---------------------+---------------------+
1 row in set (0.00 sec)
Rails アプリが Android クライアントから取得した入力データは次のとおりです。
name = 爆笑笑話
この入力データは、データベースに保存する前に Rails アプリに存在することが確認されています。そのため、Android クライアントやサーバーへの転送中に破損することはありません。このデータを取り戻す可能性はありますか? それとも完全に失われていますか?