Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将utf8字符导入MYSQL_Php_Mysql_Csv - Fatal编程技术网

Php 将utf8字符导入MYSQL

Php 将utf8字符导入MYSQL,php,mysql,csv,Php,Mysql,Csv,我正在尝试将CSV导入MYSQL数据库。我的CSV包含utf8字符,如–当我将这些字符导入数据库时,它们会被替换为?马克 我尝试了以下方法: a) 直接通过PHPMYADMIN导入 b) 通过Navicat导入(作为UTF8导入) c) 使用open office/mac excel 2010将编码更改为UTF8(似乎也会使它们成为问号) d) 另存为CSV ms dos(不确定是否会产生影响) 谁能解释一下我可能做错了什么?这与我的排序规则有关吗?是的,这与你的排序规则有关。您需要将其更改为u

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

我尝试了以下方法:

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


谁能解释一下我可能做错了什么?这与我的排序规则有关吗?

是的,这与你的排序规则有关。您需要将其更改为utf8排序规则。

需要检查的一些事项:

1) 确保表和/或行的排序规则为utf8_general_ci(不区分大小写)或utf8_bin(二进制精确)。还有很多其他的,但在我的经验中,这两个中的一个是最常见的

2) 确保php代码文件编码为UTF-8,没有字节顺序标记(BOM)。这可以防止PHP在代码中丢失编码

3) 如果在php中使用多字节函数,请确保在php.ini中设置了默认的_charset=“utf-8”


4) 确保您的数据库连接(可能是phpmyadmin中的一个设置,因为我不使用它,所以不确定)正在调用mysql\u set\u charset('utf8',$connection);在打开连接之后和发送查询之前。

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

mysql> LOAD DATA INFILE '/usr/share/mysql/file.csv' 
       INTO TABLE Table1
       CHARACTER SET utf8;

关于第4点,我想我必须确保数据至少以UTF8的形式存储,然后才需要正确地执行该部分?是的。它们或多或少是按重要性排列的。或者至少这是我必须这样做的时候我登记的顺序。(我运行了一系列处理国际搜索查询的网站,所以经常遇到这个问题)。我为数据库和特定字段设置了utf8_general_ci排序规则。我在数据库中再也没有问号了,它只是把字母一起漏掉了:(在你的例子中,还要确保CSV真的是UTF8(如果它是在西方语言的windows操作系统上从excel之类的东西输出的,它可能是ansi之类的东西),从数据库中读取的任何内容实际上都是读取并返回utf8。据我所知,没有任何转换会完全删除字符(大多数会给您一对不寻常的单字节字符,而不是多字节字符)。剥离听起来像是与输出或您或您的软件可能正在执行的某些额外处理相关的问题,例如使用正则表达式或不正确的内容编码头进行清理。尝试从phpmyadmin和navicat导入,但仍然没有正确的结果。尝试将不同程序中的两个文件保存为UTF以防万一。另外ied将整个CSV作为UTF表导入时运气不佳。这可能是MYSQL配置问题吗?有关问号和如何处理问号的讨论,请参阅。