PowerShell引發mysqldump導出文件的字符集錯誤

嘗試使用了PowerShell執行mysqldump命令導出對應的表和數據,發現導出的text字段有亂碼,猜測應該是字符集的問題,查看導出的sql文件發現所使用的字符集是utf-16,而數據庫的默認字符集是utf-8。

使用的執行語句如下:

mysqldump -uroot -p --default-character-set=UTF8 --databases test_db --tables tbl_test --hex-blob > E:\Temp\tbl_test.sql

 

網絡上查閱了相關資料,發現一人提及的相關的解決方式,解決方法如下:

將'>'操作符替換爲"| Out-File C:\tbl_test.sql -Encoding UTF8"

於是語句調整爲:

mysqldump -uroot -p --default-character-set=UTF8 --databases test_db --tables tbl_test --hex-blob | Out-File E:\Temp\tbl_test.sql -EnCoding UTF8

 

執行後,tbl_test.sql文件打開的默認編碼已經是utf-8,但是text字段依然還是亂碼。

 

又查找了一番資料發現,官網有提及該問題的處理方式,如下圖:

鏈接地址: https://dev.mysql.com/doc/refman/5.5/en/mysqldump.html

 

於是語句調整爲

mysqldump -uroot -p --default-character-set=UTF8 --databasestest_db --tables tbl_test --hex-blob --result-file=E:\Temp\tbl_test.sql

執行後,問題解決。

若用cmd.exe執行最初的語句是沒有問題的,以前沒有關注過這個問題,一直以爲PowerShell就是cmd.exe的升級版,不會引起其他問題。所以日後若要使用PowerShell要特別關注下字符集的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章