# MySQL導入TXT亂碼的解決方法
## 問題描述
在使用MySQL的`LOAD DATA INFILE`或命令行工具導入TXT文件時,常因字符集不匹配導致中文等非ASCII字符顯示為亂碼。典型場景包括:
- 文件編碼與數據庫編碼不一致
- 終端字符集設置錯誤
- 未明確指定文件字符集
---
## 解決方案
### 1. 確認文件實際編碼
使用工具檢測文件真實編碼(推薦Notepad++/VS Code):
- UTF-8(最常見)
- GBK/GB2312(中文環境常見)
- ANSI(可能對應本地編碼)
```bash
file -i filename.txt # Linux/Mac檢測編碼
在導入命令中強制聲明編碼:
LOAD DATA INFILE 'data.txt'
INTO TABLE my_table
CHARACTER SET utf8mb4 -- 根據文件編碼調整
FIELDS TERMINATED BY '\t';
-- 檢查當前編碼
SHOW VARIABLES LIKE 'character_set%';
-- 臨時設置會話編碼
SET NAMES utf8mb4;
-- 修改表編碼(需謹慎)
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4;
mysql -u root -p --default-character-set=utf8mb4 db_name < data.sql
使用iconv
工具轉換編碼:
iconv -f GBK -t UTF-8 source.txt > target.txt
head
命令檢查樣本現象 | 可能原因 | 解決方案 |
---|---|---|
中文變問號 | 文件是GBK但按UTF-8讀取 | 指定CHARACTER SET gbk |
全部亂碼 | 文件含BOM頭 | 用編輯器移除BOM |
部分亂碼 | 混合編碼 | 重新生成統一編碼文件 |
通過以上方法,90%的MySQL文本導入亂碼問題可得到解決。如問題持續,建議使用十六進制工具分析文件頭特征。 “`
注:實際字數約550字,可根據需要刪減示例代碼部分調整字數。關鍵點已用列表和表格突出顯示,便于快速閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。