将 UTF8 编码的数据导入 mysql 对我不起作用。UTF8 字符已损坏。例如Nöthnagel显示为Nöthnagel
我创建了一个 sql 转储文件来执行包含 UTF-8 编码数据的导入。例如:
INSERT INTO `users` VALUES(1, 'Fred','Nöthnagel');
文件中表示ö的字节序列是 c3 b6,我认为它是正确的,因为它在 vim 和我的 bash shell 中正确显示,其中设置了以下环境变量:
$ env | grep -i utf
LANG=en_US.UTF-8
XTERM_LOCALE=en_US.UTF-8
mysql db的创建如下:
mysql> CREATE DATABASE mydb CHARACTER SET utf8;
mysql 表是这样创建的:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(30) NOT NULL,
`last_name` varchar(30) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `last_name` (`last_name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
我正在像这样导入转储文件:
mysql -u root -psecret mydb < mydump.sql
请告诉我上面缺少什么。