MySQL - 使用 LOAD DATA LOCAL INFILE 加载西里尔文数据
MySQL - loading Cyrillic data with LOAD DATA LOCAL INFILE
我正在尝试将数据从 txt 文件加载到以下 MySQL table
CREATE TABLE test_cyrillic
(
id INT,
name NATIONAL VARCHAR(200)
);
包含数据的文件看起来像
1 Отзывы › Техника и оборудование
数据库是使用 UTF8 字符集和 utf8_general_ci 排序规则创建的。
命令看起来像
LOAD DATA LOCAL INFILE 'S:\Projects\MyDir\test_cyrillic.txt'
INTO TABLE test_cyrillic
CHARACTER SET utf8
FIELDS TERMINATED BY '\t'
OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
LINES TERMINATED BY '\r\n'
但是,从这个table中选择数据我有以下输出
id name
0 B7K2K : "5E=8:0 8 >1>@C4>20=85
而通过 INSERT 语句插入数据时
insert into test_cyrillic values(2,N'Отзывы › Техника и оборудование')
一切正常。
谁能告诉我在这种情况下加载数据有什么问题吗?
我无法重现问题。
文件:test_cyrillic.txt
:
1 Отзывы › Техника и оборудование
MySQL Command-Line:
mysql> SELECT VERSION();
+-----------------+
| VERSION() |
+-----------------+
| 5.6.25 |
+-----------------+
1 row in set (0.00 sec)
mysql> CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Query OK, 1 row affected (0.00 sec)
mysql> USE test;
Database changed
mysql> CREATE TABLE test_cyrillic (
-> id INT,
-> name VARCHAR(200) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> LOAD DATA INFILE '/path/to/file/test_cyrillic.txt'
-> INTO TABLE test_cyrillic
-> CHARACTER SET utf8
-> FIELDS TERMINATED BY '\t'
-> OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
-> LINES TERMINATED BY '\r\n';
Query OK, 1 row affected (0.00 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT id, name FROM test_cyrillic;
+------+-------------------------------------------------------------+
| id | name |
+------+-------------------------------------------------------------+
| 1 | Отзывы › Техника и оборудование |
+------+-------------------------------------------------------------+
1 row in set (0.00 sec)
我正在尝试将数据从 txt 文件加载到以下 MySQL table
CREATE TABLE test_cyrillic
(
id INT,
name NATIONAL VARCHAR(200)
);
包含数据的文件看起来像
1 Отзывы › Техника и оборудование
数据库是使用 UTF8 字符集和 utf8_general_ci 排序规则创建的。
命令看起来像
LOAD DATA LOCAL INFILE 'S:\Projects\MyDir\test_cyrillic.txt'
INTO TABLE test_cyrillic
CHARACTER SET utf8
FIELDS TERMINATED BY '\t'
OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
LINES TERMINATED BY '\r\n'
但是,从这个table中选择数据我有以下输出
id name
0 B7K2K : "5E=8:0 8 >1>@C4>20=85
而通过 INSERT 语句插入数据时
insert into test_cyrillic values(2,N'Отзывы › Техника и оборудование')
一切正常。 谁能告诉我在这种情况下加载数据有什么问题吗?
我无法重现问题。
文件:test_cyrillic.txt
:
1 Отзывы › Техника и оборудование
MySQL Command-Line:
mysql> SELECT VERSION();
+-----------------+
| VERSION() |
+-----------------+
| 5.6.25 |
+-----------------+
1 row in set (0.00 sec)
mysql> CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Query OK, 1 row affected (0.00 sec)
mysql> USE test;
Database changed
mysql> CREATE TABLE test_cyrillic (
-> id INT,
-> name VARCHAR(200) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> LOAD DATA INFILE '/path/to/file/test_cyrillic.txt'
-> INTO TABLE test_cyrillic
-> CHARACTER SET utf8
-> FIELDS TERMINATED BY '\t'
-> OPTIONALLY ENCLOSED BY '"' ESCAPED BY ''
-> LINES TERMINATED BY '\r\n';
Query OK, 1 row affected (0.00 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
mysql> SELECT id, name FROM test_cyrillic;
+------+-------------------------------------------------------------+
| id | name |
+------+-------------------------------------------------------------+
| 1 | Отзывы › Техника и оборудование |
+------+-------------------------------------------------------------+
1 row in set (0.00 sec)