一、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"