功能:Dom4J 讀 XML → Spring/Hibernate 寫 MySQL(多表、事務)。
現象:寫入中段報錯「記錄不唯一」,實為外鍵關聯失敗,數據庫中外鍵值顯示亂碼。
characterEncoding=utf8mysql 客戶端顯示亂碼SET NAMES gbk; 後 CMD 顯示正常| 環節 | 檢查點 | 常見值 |
|---|---|---|
| XML 文件 | 文件編碼聲明 | |
| Dom4J 讀取 | SAXReader 編碼設置 | reader.setEncoding("UTF-8") |
| Java 字符串 | 內存編碼 | UTF-16 (JVM 內部) |
| JDBC 連接 | connectionCharacterEncoding | useUnicode=true&characterEncoding=utf8 |
| 數據庫 | 庫/表/列字符集 | utf8mb4 推薦 |
| 客戶端顯示 | 終端/工具編碼 | CMD=GBK, 圖形化=自動檢測 |
新專案統一 utf8mb4 全鏈路:庫、表、列、連接、文件、客戶端。歷史項目遷移需謹慎規劃,建議雙寫驗證後再切換。