最近在使用MySQL時(shí),遇到了一個(gè)麻煩的問題:當(dāng)我嘗試從一個(gè)中文命名的文件中加載數(shù)據(jù)到數(shù)據(jù)庫時(shí),出現(xiàn)了亂碼問題。
經(jīng)過查詢和嘗試,我發(fā)現(xiàn)了問題所在。
首先,在導(dǎo)入數(shù)據(jù)前,需要設(shè)置設(shè)置字符集為UTF-8。可以在MySQL命令行中輸入如下命令:
SET NAMES utf8;
其次,在導(dǎo)入數(shù)據(jù)的時(shí)候,需要使用LOAD DATA INFILE命令,并且指定字符集為UTF-8。可以使用如下的命令:
LOAD DATA INFILE 'filename' INTO TABLE tablename CHARACTER SET utf8 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
需要注意的是,filename需要使用絕對路徑,否則會出現(xiàn)找不到文件的錯(cuò)誤。
最后,在建表的時(shí)候,如果需要支持中文字符集,需要指定字符集為utf8。可以使用如下SQL命令:
CREATE TABLE tablename( field1 varchar(20) CHARACTER SET utf8, field2 varchar(20) CHARACTER SET utf8 );
結(jié)合以上三個(gè)方面的注意事項(xiàng),就可以避免MySQL加載文件出現(xiàn)中文亂碼的問題了。