我正在尝试将CSV导入MYSQL数据库。我的CSV包含utf8字符,例如当我将这些字符导入我的数据库时,它们被替换为?分数。
我尝试了以下内容:
a)直接通过PHPMYADMIN导入 b)通过Navicat导入(以UTF8导入) c)使用open office / mac excel 2010将编码更改为UTF8(似乎也使它们成为问号) d)保存为CSV ms-dos(不确定是否会产生影响)
任何人都可以了解我可能做错了什么吗?这与我的校对有关吗?
答案 0 :(得分:3)
要检查的一些事项:
1)确保表和/或行的排序规则是utf8_general_ci(对于不区分大小写)或utf8_bin(对于二进制精确)。还有很多其他的,但根据我的经验,这两个中最常见的一个。
2)确保您的PHP代码文件编码为UTF-8,没有字节顺序标记(BOM)。这可以防止PHP丢失代码中的编码。
3)如果您在php中使用多字节函数,请确保在php.ini中设置了default_charset =“utf-8”
4)确保您的数据库连接(可能是phpmyadmin中的设置,不确定,因为我不使用它)正在调用mysql_set_charset('utf8',$ connection);在您打开连接之后,以及在发送查询之前。
答案 1 :(得分:0)
是的,这与您的整理有关。您需要将其更改为utf8_ *排序规则。
答案 2 :(得分:0)
声明import语句中的字符集对我有用:
mysql> LOAD DATA INFILE '/usr/share/mysql/file.csv'
INTO TABLE Table1
CHARACTER SET utf8;