尝试使用LOAD data LOCAL INFILE将阿拉伯语数据从CSV文件导入mysql

尝试使用LOAD data LOCAL INFILE将阿拉伯语数据从CSV文件导入mysql,mysql,csv,load-data-infile,Mysql,Csv,Load Data Infile,我正在尝试从.CSV导入到mysql数据库,我正在使用加载数据本地填充功能,但每次导入数据时,我都会得到阿拉伯字符(????????),我能做些什么来解决这个问题 这是我的SQL LOAD DATA INFILE 'C:/wamp/www/academyOfArt/workShop/books.csv' INTO TABLE `books_library` CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '

我正在尝试从
.CSV
导入到
mysql
数据库,我正在使用
加载数据本地填充
功能,但每次导入数据时,我都会得到阿拉伯字符(????????),我能做些什么来解决这个问题

这是我的SQL

LOAD DATA INFILE 'C:/wamp/www/academyOfArt/workShop/books.csv' INTO TABLE `books_library` CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (title,cover,authorName,pagesNum,publishingHouse,publishingYear,details) 
好的,这是我的表格标题

id - cat - instituteId - title - cover - authorName -   pagesNum -  publishingHouse - publishingYear - details
行统计

Format  Compact
Collation   utf8_general_ci

+-----------------+--------------+------+-----+---------+----------------+
| Field           | Type         | Null | Key | Default | Extra          |
+-----------------+--------------+------+-----+---------+----------------+
| id              | int(11)      | NO   | PRI | NULL    | auto_increment |
| cat             | int(11)      | NO   |     | NULL    |                |
| instituteId     | int(11)      | NO   |     | NULL    |                |
| title           | varchar(255) | NO   |     | NULL    |                |
| cover           | blob         | NO   |     | NULL    |                |
| authorName      | varchar(255) | NO   |     | NULL    |                |
| pagesNum        | int(11)      | NO   |     | NULL    |                |
| publishingHouse | varchar(255) | NO   |     | NULL    |                |
| publishingYear  | year(4)      | NO   |     | NULL    |                |
| details         | mediumtext   | NO   |     | NULL    |                |
+-----------------+--------------+------+-----+---------+----------------+
我在运行时注意到
显示变量,如'char%'
我得到


您正在以UTF-8的形式加载CSV文件,并且您的表是UTF-8,看起来不错

如果结果中的问号如下:
,并在其他情况下显示阿拉伯语字符,那么CSV文件可能不是UTF-8编码的

仔细检查CSV文件是否为UTF-8编码。如有必要,将其转换。(关于这方面的建议,你需要知道你在哪个平台上。)


编辑:这似乎是Excel的一个限制,它显然无法生成UTF-8 CSV文件!有许多解决方法。

您正在以UTF-8的形式加载CSV文件,而您的表是UTF-8,看起来不错

如果结果中的问号如下:
,并在其他情况下显示阿拉伯语字符,那么CSV文件可能不是UTF-8编码的

仔细检查CSV文件是否为UTF-8编码。如有必要,将其转换。(关于这方面的建议,你需要知道你在哪个平台上。)


编辑:这似乎是Excel的一个限制,它显然无法生成UTF-8 CSV文件!是许多变通方法。

正常;秘密不是utf8编码,而是windows-1256编码 所以这里是你应该做的 首先使用制表符分隔符将excel文件另存为txt,然后使用记事本++或任何文本编辑器将所有制表符替换为“”(以确保从您选择的选项中复制文件中任意两列之间的空格并将其粘贴到“替换内容”文本框中),然后单击“全部替换”
第二,在phpmyadmin中,您可以导入文件并使用windows-1256作为文件的字符集,格式选择CSV,并确保列分隔符为“”,同时确保文件中的列数与数据表中的列数相同,并点击GO

ok;秘密不是utf8编码,而是windows-1256编码 所以这里是你应该做的 首先使用制表符分隔符将excel文件另存为txt,然后使用记事本++或任何文本编辑器将所有制表符替换为“”(以确保从您选择的选项中复制文件中任意两列之间的空格并将其粘贴到“替换内容”文本框中),然后单击“全部替换”
第二,在phpmyadmin中,您可以导入文件并使用windows-1256作为文件的字符集,格式选择CSV,并确保列分隔符为“”,同时确保文件中的列数与数据表中的列数相同,并点击GO

我创建了自己的解决方案来解决此问题, 我使用Laravel框架和Laravel Excel库构建了一个简单的应用程序,它可以正确地处理阿拉伯语文本


如果您想使用它,我可以在GitHub上发布它

我已经创建了自己的解决方案来解决这个问题, 我使用Laravel框架和Laravel Excel库构建了一个简单的应用程序,它可以正确地处理阿拉伯语文本


如果您想使用它,我可以在GitHub上发布它

您需要设置正确的字符集,请选中此项显示您的表definition@Bedo没有插入和检索数据工作正常。当我尝试从
CSV
file导入数据时,所有问题都会出现。CSV文件采用什么编码?它来自哪里?您需要设置正确的字符集,请检查此项以显示您的表格definition@Bedo没有插入和检索数据工作正常。当我尝试从
CSV
file导入数据时,所有问题都会出现。CSV文件采用什么编码?它来自哪里?我在windows平台上使用excel导出
CSV
文件,我没有检查CSV文件是否为UTF-8编码,是的,我可以正确地看到CSV文件中的阿拉伯字符,但当尝试导入它们时,我得到了此
�, 该死,Excel除了生成utf 8 csvHay之外,什么都有。我对此感到非常困惑,首先,我用
记事本
技巧完成了一半,但现在我得到了
阿拉伯文
字符,这些字符在我的页面中呈现方式不正确,为什么?当我插入一些东西并抛出我的PHP代码时,它会像这样进入数据库。我在windows平台上使用excel导出
CSV
文件,我没有检查CSV文件是否为UTF-8编码,是的,我可以在CSV文件中正确地看到阿拉伯字符,但当尝试导入它们时,我得到了以下
�, 该死,Excel除了生成utf 8 csvHay之外,什么都有。我对此感到非常困惑,首先,我用
记事本
技巧完成了一半,但现在我得到了
阿拉伯文
字符,这些字符在我的页面中呈现方式不正确,为什么?当我插入一些东西并抛出我的PHP代码时,它会像这样转到db
ØØاØØØÙ§§Ø
上,这在页面上呈现为解码,文字类似于“عبي”。Grate我从1年开始使用Laravel很高兴在GitHubGrate上看到你的Grate我从1年开始使用Laravel很高兴在GitHub上看到你的Grate
mysql> show variables like 'char%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | latin1                                        |
| character_set_connection | latin1                                        |
| character_set_database   | utf8                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | latin1                                        |
| character_set_server     | latin1                                        |
| character_set_system     | utf8                                          |
| character_sets_dir       | c:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+--------------------------+-----------------------------------------------+