Mysql不处理特殊字符

标签 mysql special-characters

当插入字符串“Up to HM77 based models − Intel® Core™ i5”时,mysql 给出错误“Incorrect string value: '\xE2\x88\x92 In...' for column 'spec_1'”。

我知道这与从 MS-Office 复制字符有关。

我从this得到了一些想法但仍然不知道为什么会这样。解决此问题的最佳方法是什么?

根据要求编辑添加 sqlfiddle--

您可以在 sqlfiddle.com 中尝试以下查询以了解错误

CREATE TABLE product_content ( spec_1 varchar(1000) DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=1752 DEFAULT CHARSET=latin1; insert into product_content (spec_1) values('Up to HM77 based models − Intel® Core™ i5')

最佳答案

将字符集更改为 UTF-8 并解决了问题。

它显示的行大小太大,因为我有很多列作为 varchar(1000)。我将这些列更改为 TEXT/BLOB 并解决了问题。

如果您遇到此问题,那么:

1) 将表格的编码改为UTF-8 2) 如果在更改编码时显示“行大小太大”,请检查您是否有很多 varchar 列。 3) 将那些 varchar 列更改为 text/blob

关于Mysql不处理特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12710497/

相关文章:

regex - 在 Notepad++ 中用\t 替换正则表达式

db2 - 如何在 DB2 中查找特殊字符?

mysql - 查明 SQL 表是否存在没有 "flagged"记录的条目

mysql - 根据子查询更新值

python-3.x - 从Python中的字符串中删除特殊字符

php - 当 SimpleXML 解析带有特殊字符的 XML 时会发生什么?

mysql - 如何在 Rails 中编写代码以在 SQL 中运行我想要的查询

mysql - Spring Roo - 多对多关系在每次更新时删除和插入 - 如何更改此行为

mysql - 西里尔文、AJAX 和数据库

c++ - 处理带有奇怪字符的文本