一、windows系統編碼
查看編碼命令:chcp
- 936 GBK
- 65001 UTF-8
- 437 英文
修改系統編碼
1、控制面板修改
- 需管理員權限-Windows 10/11
- 進入 控制面板 > 區域 > 管理 > 更改系統區域設置
- 勾選 Beta版: 使用Unicode UTF-8提供全球語言支持 → 重啟生效
- 修改之后系統編碼會變成 65001
2、注冊表修改
- 打開注冊表:regedit
- 導航到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
- 新建字符串值 Autorun → 設置值為 chcp 65001
- 重啟CMD生效
3、CMD命令行修改
Font 修改為:MingLiu(細明體)、NSimSun(新宋體)、SimSun-ExtB(宋體擴展)
二、Java應用編碼配置
啟動JAR時指定編碼:
java -Dfile.encoding=UTF-8 -jar your-app.jar
檢查IDE/構建工具編碼:
Maven:在pom.xml中配置:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
IDE文件編碼:
設置全局編碼為UTF-8(File > Settings > Editor > File Encodings),確保項目文件(.java/.properties)保存為UTF-8。
三、日志文件亂碼
檢查日志框架(如Log4j2)配置:
<Configuration status="WARN"><Appenders><File name="File" fileName="app.log" encoding="UTF-8"><PatternLayout pattern="%msg%n" charset="UTF-8"/></File></Appenders>
</Configuration>
四、數據庫編碼問題
檢查數據庫編碼:
SHOW VARIABLES LIKE 'character_set%';
– 確保character_set_server=utf8mb4
連接字符串指定編碼:
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
五、網絡傳輸編碼
HTTP請求/響應:
設置請求頭:Content-Type: text/html; charset=utf-8。
Spring Boot配置:
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
六、Tomcat亂碼
修改 catalina.sh 或 catalina.bat(JVM 參數),增加 -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"