MySQL導入.CSV數(shù)據(jù)中文亂碼的解決方式
這是因為編碼問題,我們將xls或者是xlsx轉(zhuǎn)換為 CSV格式后,編碼并不是UTF-8,導致存放到數(shù)據(jù)庫的數(shù)據(jù)就會出現(xiàn)亂碼問題
解決方式
選擇csv文件,使用Notepad或者是記事本打開

然后設置編碼格式為:UTF-8即可

拓展一:mysql導出scv文件亂碼、躥行
工作原因,常常不能實現(xiàn)完全的線上化(即,所有數(shù)據(jù)都在線上完成,不需要導入導出),而導出Excel常常比修煉成仙還慢,因此,我們將數(shù)據(jù)庫文件導出到本地使用的時候,常常使用的方法的是導成CSV格式。而csv格式的也常常出現(xiàn)導出的中文亂碼,或者躥行等問題,從而陷入兩難境地。老板要數(shù)據(jù),你卻導不出來,急死人了。
1.問題:我們原本要把如左圖所示的數(shù)據(jù)庫中的數(shù)據(jù)導出成他原本的樣子,無奈成了右邊的亂七八糟的東西;

2.解決:
a:原本怎么導出為csv的還是怎么導;
b:選中你導出的csv文件,右鍵選擇打開方式為【記事本】;

c:文件-->另存為-->編碼選擇UTF-8-->保存;(文件名和保存類型都不需要改,點擊保存之后會提示該文件已存在,是否替換,選擇【是】就好)

d:打開剛剛保存的文件,只是這次選擇打開方式為excel,然后數(shù)據(jù)就會像你數(shù)據(jù)庫里的樣子一樣,干干凈凈(如下圖)。

拓展二:
導入源數(shù)據(jù)

LOAD DATA LOCAL INFILE 'E:\\stocks.csv' INTO TABLE `stock_info_tb` FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'
亂碼結(jié)果

修改SQL
LOAD DATA LOCAL INFILE 'E:\\stocks.csv' INTO TABLE `stock_info_tb` CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'
這個utf8是根據(jù)導入的csv文件編碼來決定的,可以通過文本編輯器把要導入的數(shù)據(jù)修改一個自己喜歡的編碼,然后這個一致就OK。
這樣修改后,仍然是亂碼,有些崩潰的。
查看與修改表信息
表對中文是否支持運行:
SHOW FULL COLUMNS FROM `stock_info_tb`; 或 SHOW CREATE TABLE `stock_info_tb`;
結(jié)果顯示:
CREATE TABLE `stock_info_tb` ( `type` varchar(10) CHARACTER SET latin1 DEFAULT NULL, `bourse` varchar(2) CHARACTER SET latin1 DEFAULT NULL, `stock_id` int(11) NOT NULL, `stock_name` varchar(10) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`stock_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
發(fā)現(xiàn)要導入來的type,stock_name兩個列為latin1字符集,修改為utf8為:
/*DDL 信息*/------------ CREATE TABLE `stock_info_tb` ( `type` varchar(10) COLLATE utf8_bin DEFAULT NULL, `bourse` varchar(2) CHARACTER SET latin1 DEFAULT NULL, `stock_id` int(11) NOT NULL, `stock_name` varchar(10) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`stock_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
再運行
LOAD DATA LOCAL INFILE 'E:\\stocks.csv' INTO TABLE `stock_info_tb` CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'
結(jié)果

喜歡這個樣的結(jié)果。
以上就是MySQL導入.CSV數(shù)據(jù)中文亂碼的解決方式的詳細內(nèi)容,更多關(guān)于MySQL導入.CSV中文亂碼的資料請關(guān)注腳本之家其它相關(guān)文章!
- 利用Sqoop實現(xiàn)MySQL數(shù)據(jù)導入Hive的全流程
- 使用mysqldump導出導入mysql表結(jié)構(gòu)或者數(shù)據(jù)
- MySQL解決數(shù)據(jù)導入導出含有外鍵的方案
- 如何解決mysql執(zhí)行導入sql文件速度太慢的問題
- 解決SQL文件導入MySQL數(shù)據(jù)庫1118錯誤的問題
- mysql導入sql文件失敗的解決方案
- 如何解決mysql導入sql文件慢、錯等問題
- Navicat導入導出Mysql?結(jié)構(gòu)、數(shù)據(jù)、結(jié)構(gòu)+數(shù)據(jù)完整步驟
- Mysql命令行導出SQL文件和導入文件詳細步驟
- MySQL數(shù)據(jù)導入導出的三種辦法總結(jié)
- mysql導入導出數(shù)據(jù)的示例詳解
- mysql sql大文件導入正確姿勢
相關(guān)文章
mysql中的delete,drop和truncate有什么區(qū)別
這篇文章主要介紹了mysql中的delete,drop和truncate有什么區(qū)別,三者的用法和使用場景又完全不同,接下來我們來看看具體的區(qū)別吧,希望對你的學習有所幫助2022-06-06

