mysql - 尝试使用 LOAD DATA LOCAL INFILE 将 CSV 文件中的阿拉伯数据导入 mysql

标签 mysql csv load-data-infile

我尝试从 .CSV 导入到 mysql 数据库,我正在使用 LOAD DATA LOCAL INFILE 函数,但每次我导入data 我得到的阿拉伯字符为 (?????????) 我该怎么做才能解决这个问题

这是我的 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    |                |
+-----------------+--------------+------+-----+---------+----------------+

Hay 我在运行时注意到 show variables like 'char%' 我得到了

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\ |
+--------------------------+-----------------------------------------------+

最佳答案

您正在以 UTF-8 格式加载 CSV 文件,而您的表格是 UTF-8 格式,看起来没问题。

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

仔细检查 CSV 文件是否采用 UTF-8 编码。必要时转换它。 (要获得这方面的建议,需要知道您使用的是什么平台。)

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

关于mysql - 尝试使用 LOAD DATA LOCAL INFILE 将 CSV 文件中的阿拉伯数据导入 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675447/

相关文章:

mysql - 无论如何,是否可以使用 LOAD DATA INFILE 导入包含多个工作表的 csv 文件

Python mysql 字符串替换不起作用

python - to_CSV 将 np.array 保存为字符串而不是列表

python - Matplotlib 在给定 csv 数据的情况下创建曲面图 (x,y,z,color) - 颜色错误

python - 使用 Pandas 与 MySQL 读取巨大的 CSV 文件

PHP 和 SQL 无法发布

mysql - 在没有用户输入的情况下显示来自 mysql 的数据——安全问题

python - 使用 Python 的 MySQL 加载数据 infile 不起作用

php - 检索导入的 CSV 的 ID(LOAD DATA INFILE)

mysql - 使用 blob 字段加载数据 infile