【问题标题】:MySQL - loading Cyrillic data with LOAD DATA LOCAL INFILEMySQL - 使用 LOAD DATA LOCAL INFILE 加载 Cyrillic 数据
【发布时间】:2016-01-22 12:59:56
【问题描述】:

我正在尝试将数据从 txt 文件加载到以下 MySQL 表中

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'

但是,从这个表中选择数据我有以下输出

id           name
0             B7K2K  :   "5E=8:0  8  >1>@C4>20=85

而通过 INSERT 语句插入数据时

insert into test_cyrillic values(2,N'Отзывы › Техника и оборудование')

一切正常。 谁能告诉我在这种情况下 LOAD DATA 有什么问题?

【问题讨论】:

    标签: mysql utf-8 load cyrillic


    【解决方案1】:

    我无法重现该问题。

    文件:test_cyrillic.txt

    1   Отзывы › Техника и оборудование
    

    MySQL 命令行:

    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)
    

    【讨论】:

    • 哦,对了,您看不到问题可能是因为您的文本文件是 UTF-8 编码,但我的是 ANSI。看来我知道了,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 2012-06-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多