【发布时间】:2019-04-03 20:22:26
【问题描述】:
我有一个包含 130 万行的 tsv 文件,其中包含不同的字符集,如拉丁语、俄语、中文等。
这是我的表结构
CREATE TABLE `zip_test` (
`country_code` VARCHAR(2) NULL DEFAULT NULL,
`postal_code` VARCHAR(20) NULL DEFAULT NULL,
`place_name` VARCHAR(180) NULL DEFAULT NULL,
`id` INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=160467
;
通过从命令行运行它,我设法看到俄语字符正常,但其他字符仍然无法正确显示。
mysql -uUser -pPass --default-character-set=utf8 --local-infile database -e "LOAD DATA LOCAL INFILE 'file.tsv' INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'"
我该如何解决这个问题?我做错了什么?我以前从未使用过与拉丁语不同的东西。
【问题讨论】:
-
你用的是什么客户端?能不能显示中文?是用
UTF-8吗? -
@RickJames 我在使用 Heidi,现在显示正常。正如我在更改为 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;一切正常。谢谢