我在Excel中有这个字符串(我用UTF编码它)当我保存为CSV并导入到MySql时我只得到以下内容,我知道这可能是一个字符集问题,但你能解释一下为什么因为我很难理解它。
在Excel单元格中:
PARTY HARD PAYDAY SPECIAL â UPTO £40 OFF EVENT PACKAGES INCLUDING HOTTEST EVENTS! MUST END SUNDAY! http://bit.ly/1Gzrw9H
结束于DB:
PARTY HARD PAYDAY SPECIAL
该字段的结构为utf8_general_ci
编码和VARCHAR(10000)
答案 0 :(得分:0)
Mysql不支持完整的unicode utf8。有一些4字节字符无法处理,我猜,正确存储在常规utf8中。我假设在导入时它会截断SPECIAL之后的值,因为mysql不知道如何处理或存储该字符串之后的字符串。
为了处理4字节字符的完整utf8,你必须切换到utf8mb4。
这是来自mysql文档:
名为utf8的字符集每个字符最多使用三个字节,仅包含BMP字符。 utf8mb4字符集每个字符最多使用四个字节,支持补充字符...
您可以在此处阅读更多内容@dev.mysql
另外,Here是关于mysql中reg-utf8问题以及如何切换到utf8mb4的详细解释。