首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql2 2::Error:土耳其字符的不正确字符串值

问Mysql2 2::Error:土耳其字符的不正确字符串值
EN

Stack Overflow用户
提问于 2013-10-11 15:58:10
回答 2查看 5K关注 0票数 10

在Ruby2.0的Rails 4.0应用程序中,土耳其字符在试图在数据库中插入记录时会导致以下ActiveRecord / MySQL错误。例如,有问题的字符是ğ和ş,但不存在üor的问题(这似乎也发生在拉丁字母中)。

代码语言:javascript
复制
ActiveRecord::StatementInvalid (Mysql2::Error: Incorrect string value: 
                               '\xC4\x9Fu\xC5\x9F ...' for column ...

如何防止此错误?应用程序和数据库使用UTF-8作为标准编码。"xC4\x9F“是"ğ”的UTF-8编码,“xC5\x9F”是"ş“的UTF-8。两人似乎都是有问题的特殊人物。德语(aü)或法语(áàa)的特殊字符没有问题。与ISO 8859-1或ISO8859-15(只有ISO 8859-9支持所有土耳其字符)相反,应该可以存储UTF-8中的土耳其字符。

数据库的MySQL集合设置如下。将collection_database转换为不同的值(如utf8_unicode_ci )会有帮助吗?

代码语言:javascript
复制
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-11 16:41:37

原因显然是数据库(特别是数据库表)有错误的字符集。仅仅切换数据库的排序规则是没有帮助的。对数据库表的检查表明,每个表仍然具有latin1字符集,无法存储所有utf8字符:

代码语言:javascript
复制
mysql> show table status;
+----------+--------+-------------------+ ..
| Name     | Engine | Collation         | ..
+----------+--------+-------------------+ ..
| my_table | InnoDB | latin1_swedish_ci | ..

因此,我直接修改了表的字符集:

代码语言:javascript
复制
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8;

然后它终于起作用了,字符集是如何utf8

代码语言:javascript
复制
   mysql> show table status;
    ... +-------------------+ ..
    ... | Collation         | .. 
    ... +-------------------+ ..
    ....| utf8_general_ci   | ..
票数 21
EN

Stack Overflow用户

发布于 2013-10-11 16:09:33

在将字符串保存到数据库之前,尝试应用force_encoding将您的unicode编码的土耳其字符串编码到UTF-8中,如下所示。

代码语言:javascript
复制
turkish_string = turkish_string.force_encoding("UTF-8")

有关详细信息,请阅读这

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19322423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档