首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 5.1 中文路徑支援改進:解決中文檔案名匯入匯出亂碼

     編輯:MySQL 資料庫相關知識

MySQL 5.1 重大改進:完美支援中文路徑與檔案名

MySQL 4.1 起曾不支援中文路徑/檔案名,導致 SELECT ... INTO OUTFILE 與 LOAD DATA INFILE 在中文目錄下失敗。MySQL 5.1 已修復此問題。

實測驗證 (Windows XP, MySQL 5.1.7-beta)

mysql> USE test;
mysql> DESC tr;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | YES  |     | NULL    |       |
| name      | varchar(50) | YES  |     | NULL    |       |
| purchased | date        | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+

mysql> INSERT INTO tr (id,name) VALUES (1,'EWR'),(2,'SR'),(3,'GH');

-- 匯出到中文路徑/檔名
mysql> SELECT * FROM tr INTO OUTFILE 'c:/mysql51/豬八戒.txt';
Query OK, 11 rows affected (0.00 sec)

mysql> SELECT * FROM tr INTO OUTFILE 'c:/mysql51/新建文件夾/豬八戒.txt';
Query OK, 11 rows affected (0.02 sec)

-- 匯入驗證
mysql> CREATE TABLE tr2 AS SELECT * FROM tr LIMIT 0;
mysql> LOAD DATA INFILE 'c:/mysql51/新建文件夾/豬八戒.txt' INTO TABLE tr2;
Query OK, 11 rows affected (0.00 sec)

對比 MySQL 5.0.18 (失敗案例)

mysql> LOAD DATA INFILE 'c:/mysql51/新建文件夾/豬八戒.txt' INTO TABLE tr;
ERROR 29 (HY000): File 'c:MySQL51脨脗陸簍脦脛錄鎂錄脨脰鉚擄脣陸盲.txt' not found (Errcode: 2)

5.0 版本中文路徑編碼錯誤,導致找不到檔案。

結論

MySQL 5.1 徹底解決中文路徑/檔案名在 INTO OUTFILE 和 LOAD DATA INFILE 中的亂碼問題,大幅提升中文環境易用性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved