MYSQL:插入传统&同一'细胞'中的简体中文

时间:2012-09-18 08:05:46

标签: mysql character-encoding

新手在这里!

我的源数据包含同一个'单元格中的简体中文和繁体中文。 (抱歉,使用Excel的新手在这里说!),我试图使用"加载数据Infile"加载到MYSQL中。

违规文字是"到达广州新冶酒吧!一杯芝华士嘈杂的音乐行行色色的男女"。它既有简体中文("广")又有繁体中文("华")。

当我将其加载到MySQL时,我收到以下错误:

  

错误代码:1366。字符串值不正确:' \ xF0 \ xA3 \ x8E \ xB4 \ xE8 \ x83 ...'对于列> '说明'在第2行

数据库的排序规则是UTF-8默认排序规则,输入文件也是UTF-8编码的。

我有什么方法可以:

a)让SQL接受这一行数据(理想),或者 b)获取SQL以跳过插入这一行数据?

谢谢!如果您需要更多细节,请告诉我。

凯文

1 个答案:

答案 0 :(得分:2)

如果它绊倒了,那是因为它不在Unicode的基本多语言平面中;它位于补充多语言平面中,高于U + FFFF并占用UTF-8中的4个字节而不是3个。完全符合的Unicode实现对待它们没有区别,但MySQL字符集utf8不接受字符U + FFFF以上。如果您有最新版本的MySQL,可以使用ALTER TABLE来使用正确处理所有Unicode字符的utf8mb4。有一些需要改变,因为MySQL为每个字符分配4个字节而不是3个字节;有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-upgrading.html

此问题与Inserting UTF-8 encoded string into UTF-8 encoded mysql table fails with "Incorrect string value"重复。