当插入字符串“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/