我正在尝试将unicode字符串存储在MySQL数据库中(Ubuntu 10.04上的MySQL版本5.1.41-3ubuntu12.9)。只要我使用终端查看数据,这似乎工作正常。但是,如果我使用MySQL Query Browser或Ruby on Rails来查询数据库,我得到的只是垃圾字符串。
我尝试将default-character-set = utf8
和character-set-server = utf8
添加到我的my.cnf
文件并重新启动MySQL,但这似乎没有帮助。我的database.yml
文件有encoding: utf8
行,但我猜这不是问题,因为我无法在MySQL查询浏览器中正确查看数据。
关于该怎么做的任何想法?
答案 0 :(得分:1)
在没有互联网帮助的情况下,我遇到了完全相同的问题。数据仅在终端窗口中显示正确的数据,但MySQL Query Browser和PHP都显示奇怪的字符。
最后我意识到数据库中的数据没有使用正确的字符集保存。所以我更新了我插入和更新的代码,添加了$link->set_charset('utf8');
,其中$ link是mysqli
对象。
现在插入的新数据显示正常。我仍然不明白为什么MySQL终端正确显示它。
无论如何它现在有效!