2011-09-22 26 views
0

我有一個充滿重音字符的mySQL數據庫。數據庫定期從MS Access 2010中安裝。導入到mySQL後UTF-8字符顯示不同

在Access中,您會看到éèàÜ。在導出過程中指定了Access UTF-8編碼。

在我的電腦上的UltraEdit中打開生成的文本文件,你會看到「VieuxCarré」,UE說編碼是U8-DOS。

的文件通過FTP上傳,並通過LOAD DATA LOCAL INFILE查詢進口這樣

LOAD DATA LOCAL INFILE '$dir/$t.$ext' INTO TABLE `$t` FIELDS OPTIONALLY ENCLOSED BY '|' TERMINATED BY ';' LINES TERMINATED BY '\n' 

在MySQL領域的排序規則設置爲utf8_general_ci。

如果您從命令行或從phpMyAdmin查詢mySQL,您會看到「VieuxCarré」。

我在做什麼錯?

回答

1

如果您使用LOAD DATA INFILE與具有字符集這是從你的數據庫的默認值不同的文件,你需要指定的字符集的文件是:

LOAD DATA LOCAL INFILE '$dir/$t.$ext' 
INTO TABLE `$t` 
CHARACTER SET utf8 
FIELDS OPTIONALLY ENCLOSED BY '|' TERMINATED BY ';' 
LINES TERMINATED BY '\n' 

需要注意的是數據庫的字符集是數據庫範圍的,並且不同於字符集和字符集。 SHOW CREATE DATABASE database_name會顯示數據庫字符集。

+0

我可以吻你的男人。下次你在新奧爾良我欠你一個薩米奇! – jerrygarciuh