Database 使用加载数据填充阿拉伯数据
我正在尝试将.csv文件导入到表中。我已经了解了如何使用以下查询来获取插入的数据:Database 使用加载数据填充阿拉伯数据,database,mysql,collation,load-data-infile,Database,Mysql,Collation,Load Data Infile,我正在尝试将.csv文件导入到表中。我已经了解了如何使用以下查询来获取插入的数据: LOAD DATA INFILE 'examplesofdata.csv' INTO TABLE coins FIELDS TERMINATED BY ',' ENCLOSED BY '' ESCAPED BY '\\' IGNORE 1 LINES; 然而,对于我的几个字段,我有阿拉伯语内容,这些内容作为一系列的?我认为这是因为我没有正确整理数据库,或者我没有完全理解LOAD DATA INFILE查询。
LOAD DATA INFILE 'examplesofdata.csv' INTO TABLE coins FIELDS TERMINATED BY ','
ENCLOSED BY '' ESCAPED BY '\\' IGNORE 1 LINES;
然而,对于我的几个字段,我有阿拉伯语内容,这些内容作为一系列的?我认为这是因为我没有正确整理数据库,或者我没有完全理解LOAD DATA INFILE查询。如有任何建议,将不胜感激
表演创造了桌上硬币;输出为:
CREATE TABLE `coins` (
`cat_num` int(11) NOT NULL,
`reg_num` int(11) NOT NULL,
`period` varchar(255) NOT NULL,
`arb_period` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`ruler` varchar(255) NOT NULL,
`arb_ruler` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`mint` varchar(255) NOT NULL,
`arb_mint` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`date` varchar(255) NOT NULL,
`weight` float NOT NULL,
`diameter` float NOT NULL,
`khedieval_num` varchar(255) NOT NULL,
`ref` text NOT NULL,
PRIMARY KEY (`cat_num`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
将字符集utf8\U unicode设置为您的语言环境如何?因此,我最终从一位老讲师那里得到了数据库课程的答案。他告诉我,这个问题实际上是MySQL当前版本的一个bug,当时唯一已知的解决方案是通过PHP或其他脚本语言手动导入数据 此问题的错误位于:
这对我没有太大帮助,因为我只是在做一个原型,同时还管理了一个解决方案,但希望它能对你有更多的用处。这仍然是MySQL的一个bug。然而,我发现数据库的默认字符集是罪魁祸首。有两种可能的解决办法:
我还发现您的角色集客户端也需要UTF-8:
mysql> show session variables like 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | latin1
...
阅读mysql文档,了解如何对who服务器或仅对会话进行更改。将数据本地填充'filename'加载到表tablename字符集utf8以'\t'行结尾的列,以'\n'结尾
字符集utf8起到了作用。我也遇到了这个问题,但是我得到的不是一系列的?,而是被截断的数据 就像“aeióu”在“aei”中被截断一样 检查我提出的解决方案,您需要将CSV字符集与加载数据填充匹配
Cheers将
字符集utf8
添加到加载数据
语句是最接近的答案。然而,还提出了另外两个问题
当尝试使用utf8/utf8mb4时,如果您看到问号(普通的,不是黑钻石)
- 要存储的字节未编码为utf8。解决这个问题
- 数据库中的列是字符集utf8(或utf8mb4)。解决这个问题
- 此外,检查读取期间的连接是否为utf8
- 要存储的字节未编码为utf8。解决这个问题
- 此外,检查读取期间的连接是否为utf8
utf8\u unicode\u ci
试试吗?我基本上提到了utf8编码。正确的语法你可以在这里罚款-我发现了我的语法错误,觉得很愚蠢,但它仍然导致???而不是文件中的内容。当我从excel中复制文本并手动粘贴时,效果很好,我不知道这是否有帮助。你有phpmyadmin吗?请查看一些字段排序设置,或者如Yada所指出的,您可以使用SHOW CREATE TABLE coins
。该错误适用于4.1版,该版本没有加载数据的字符集
子句。但是bug报告提供了一个解决方法。希望没有人在读这篇文章时仍然使用4.1;因此,这不应被视为“答案”。