1

我正在尝试将 CSV 导入 MYSQL 数据库。我的 CSV 包含 utf8 字符,例如 â 当我将这些字符导入我的数据库时,它们被替换为 ? 分数。

我尝试了以下方法:

a)直接通过 PHPMYADMIN 导入 b)通过 Navicat 导入(导入为 UTF8) c)使用 open office / mac excel 2010 将编码更改为 UTF8(似乎也使它们成为问号) d)另存为 CSV ms-dos(不是确定它是否会有所作为)

谁能阐明我可能做错了什么?这与我的排序规则有关吗?

4

3 回答 3

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); 在您打开连接之后和发送查询之前。

于 2012-06-30T04:53:12.370 回答
0

是的,这与您的整理有关。您需要将其更改为 utf8_* 排序规则。

于 2012-06-30T04:49:16.690 回答
0

在 import 语句中声明字符集对我有用:

mysql> LOAD DATA INFILE '/usr/share/mysql/file.csv' 
       INTO TABLE Table1
       CHARACTER SET utf8;
于 2016-07-08T06:55:29.040 回答