2011-02-10 27 views
18

我有一個很大的CSV文件,我將它加載到MySQL表中。但是,這些數據被編碼爲utf-8格式,因爲它們包含一些非英文字符。 我已經將表中相應列的字符集設置爲utf-8。但是當我加載我的文件。非英文字符變成奇怪的字符(當我做我的錶行選擇)。在我加載到表格之前,是否需要編碼我的數據?如果是的話我該怎麼做。我使用Python來加載數據並使用LOAD DATA LOCAL INFILE命令。 感謝將utf-8編碼的文本加載到MySQL表中

回答

2

文件,應送

init_command = 'SET NAMES UTF8' 
use_unicode = True 
charset = 'utf8' 

時做MySQLdb.connect() 例如

dbconfig = {} 
dbconfig['host']   = 'localhost' 
dbconfig['user']   = '' 
dbconfig['passwd']   = '' 
dbconfig['db']    = '' 
dbconfig['init_command'] = 'SET NAMES UTF8' 
dbconfig['use_unicode']  = True 
dbconfig['charset']   = 'utf8' 

conn = MySQLdb.connect(**dbconfig) 

編輯:啊,對不起,我看你還說,你使用 「LOAD DATA LOCAL INFILE」 - 這是不是從你最初的問題:)明確

62

嘗試

+5

應該是被接受的答案 – memical 2016-03-20 09:32:57

2

不需要在文件中對字符進行編碼,但是在將此文件加載到數據庫之前,您需要確保文件的編碼格式爲UTF-8。