我有一个从 Android 设备接收数据的 rails 应用程序。我注意到有些数据在日语中没有正确保存。它在 MySQL 客户端和 rails 网站中显示为文字问号(不是菱形问号)。
事实证明,我连接到 rails 应用程序的数据库设置为 Latin1。Rails 设置为 UTF-8。
我读了很多关于字符编码的文章,但他们都提到数据在某种程度上有点可读性。然而,我的只是字面上的问号。还尝试使用网络上的多种方法将数据转换为 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 客户端或传输到服务器期间被破坏。我有机会取回这些数据吗?还是完全丢失了?