MySQL在LOAD DATA操作期间将eszett字符视为“ß”

时间:2016-11-08 17:03:33

标签: mysql csv utf-8 character-encoding load-data-infile

我正在尝试使用MySQL的LOAD DATA语句导入small data set柏林街道地址。问题是,在导入运行之后,德国街道名称中所有漂亮的ß字符都变成了sets集。

这是我用于此表的create-table语句:

CREATE TABLE `subway_distances` (
  `STN` varchar(255) DEFAULT NULL,
  `HNR` int(9) DEFAULT NULL,
  `Lat` decimal(36,15) DEFAULT NULL,
  `Lon` decimal(36,15) DEFAULT NULL,
  `Distance` decimal(45,20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8

...这是我的MySQL shell代码:

charset utf8;
TRUNCATE TABLE subway_distances;
LOAD DATA LOCAL INFILE '/path/to/output.csv'
    INTO TABLE berlin.subway_distances
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\';
SELECT * FROM subway_distances LIMIT 0,10;

我在vim中查看了output.csv,eszett字符似乎很好。

我假设我在MySQL中只需要一个不同的编码声明,但我不知道从哪里开始。

我也假设整理无关紧要,因为我不是在比较价值 - 只是纯粹试图获得有效的导入。

1 个答案:

答案 0 :(得分:0)

我找到了相对较快的答案。看起来我只需要在LOAD DATA语句中指定CHARACTER SET值。所以新的陈述如下:

datetime