Я создаю таблицу в mysql на командной строке macos, используя кодировку 'utf-8',
mysql> CREATE TABLE tb_stu (id VARCHAR(20), name VARCHAR(20), sex CHAR(1), birthday DATE) default charset=utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| pet |
| tb_stu |
+----------------+
2 rows in set (0.00 sec)
mysql> show create table tb_stu \G
*************************** 1. row ***************************
Table: tb_stu
Create Table: CREATE TABLE `tb_stu` (
`id` varchar(20) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` char(1) DEFAULT NULL,
`birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Я хочу добавить некоторые значения в таблицу 'tb_stu', у меня есть текстовый файл, содержащий китайский языкстрока:
1 小明 男 2015-11-02
2 小红 女 2015-09-01
3 张三 男 2010-02-12
4 李四 女 2009-09-10
и txt-файл тоже содержит кодировку utf-8!
➜ ~ file /Users/lee/Desktop/JAVA/Java从入门到精通/第18章--使用JDBC操作数据库/Example_18_02/tb_stu.txt
/Users/lee/Desktop/JAVA/Java从入门到精通/第18章--使用JDBC操作数据库/Example_18_02/tb_stu.txt: UTF-8 Unicode text
, поэтому я выполняю командную строку mysql:
mysql> LOAD DATA LOCAL INFILE '/Users/lee/Desktop/JAVA/Java从入门到精通/第18章--使用JDBC操作数据库/Example_18_02/tb_stu.txt' INTO TABLE tb_stu;
Query OK, 4 rows affected, 4 warnings (0.01 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 4
но я получаю грязный код в mysql:
mysql> select * from tb_stu;
+------+----------------+------+------------+
| id | name | sex | birthday |
+------+----------------+------+------------+
| 1 | å°æ˜Ž | ç | 2015-11-02 |
| 2 | å°çº¢ | å | 2015-09-01 |
| 3 | å¼ ä¸‰ | ç | 2010-02-12 |
| 4 | æŽå›› | å | 2009-09-10 |
+------+----------------+------+------------+
4 rows in set (0.00 sec)
это меня смущает, табель в mysql и txt - оба кодировки 'utf-8', почему я получаю грязный код?Большое спасибо!