我有一个带有列排序规则的mysql表:latin1_bin
我有一个需要上传到表的ANSI csv文件。
案例1:我将指定文件字符集的文件导入为windows-1252并插入0行。
案例2:我导入相同的文件,指定文件的字符集为utf-8,并插入带有特殊字符问号的行。
造成这个问题的原因是什么?如何将ANSI文件正确导入mysql数据库?
答案 0 :(得分:0)
问:造成这种情况的原因是什么?
A: MySQL latin1
characterset是一个单字节字符集。执行字符集转换时,任何未映射到目标字符集中的字符的代码点都将转换为默认字符。在你的情况下,这是一个问号。
一个快速测试是将数据加载到具有不同字符集的列中,例如utf8mb4
如果您使用的是MySQL 5.5。
阅读文件时,指定正确的编码非常重要。
我建议您阅读我在评论中提供的两篇博客文章,并在google中搜索“UTF8一直”等知识来源。 (我会提醒你,有很多不良信息(如果不是更多)而不是好信息。对基础知识的理解很重要;请参阅我在评论中首先提到的那两篇博文。)