Fork me on GitHub

Windows平台上Idea、Tomcat、浏览器页面显示乱码问题解决

核心:乱码问题是由于字符编码不一致导致的,所以解决乱码问题的核心概念是统一字符编码。

首先我们查看各个平台的字符编码:

Windows

cmd中输入chcp 命令查看(Windows系统默认字符编码时GBK)

  • 936 代表 GBK
  • 65001 代表 UTF-8
    注意:通过chcp命令如 chcp 65001 来更改字符编码只对当前控制台生效!

Idea

Setting > Editor > File Encodings

image

Tomcat

Tomcat安装位置 > conf > logging.properties文件

image

默认是 UTF-8

Tomcat乱码原因

Tomcat启动及Tomcat系统日志乱码

Tomcat启动运行会调用系统配置好的Java虚拟机,而Java虚拟机使用的字符编码是操作系统默认的字符编码。tomcat默认编码是UTF-8,Windows系统默认编码是GBK,所以Tomcat会乱码。

Tomcat运行过程中项目打印的信息乱码

我们项目在使用Tomcat调试运行时会有相应的Tomcat配置,如:

image

此处虚拟机参数配置为了指定项目运行时依赖的JVM的字符编码。和咱们Idea中的项目编码统一

浏览器中页面乱码

浏览器中页面乱码与否是由 项目中运行时JVM使用的编码 以及 页面指定的编码 是否统一来决定。

项目中运行时JVM使用的编码,前文Tomcat乱码已经说过了。
页面指定的编码 可以在 <head> 标签中添加子标签 <meta charset="UTF-8"> 来设置

Idea控制台乱码

Idea控制台乱码与否跟 项目编码项目中运行时JVM使用的编码 是否统一有关,IDEA控制台有智能解析能力(控制台支持多种编码【如IDEA控制台支持UTF-8】,控制台会自动尝试正确解析输出内容),所以即使编码不一致也不一定会乱码,但是我们尽量保持编码统一。

解决乱码问题

解决乱码问题的根源就是解决编码不一致问题,前文已经分析了各个地方的编码,可以看到很多乱码问题其实跟JVM使用的字符编码有关,JVM默认使用操作系统默认的编码(Windows默认GBK,Linux默认UTF-8)。咱们按照实际情况更改统一编码即可,推荐全部设置为UTF-8。

推荐直接更改Windows的默认字符编码为UTF-8,可能会对一些不支持UTF-8的老旧软件有影响,但对于咱们开发者来说利大于弊。

Windows11更改系统默认编码

按win键打开面板搜索并进入【语言设置】

然后进入管理语言设置

image

然后进入更改系统区域设置

image

然后勾选上 UTF-8的支持

image

点击确定后会提示重启电脑,重启即可设置完成。
开机后CMD控制台中输入 chcp 命令查看是否输出 65001 ,输出说明更改成功。

如果项目中使用了日志框架导致日志乱码,则更改对应日志框架的字符编码设置即可。

参考:
解决Tomcat中文乱码问题——windows平台
DEA项目使用tomcat运行和页面乱码问题
访问网页中文出现乱码(Tomcat)

posted @ 2025-02-21 19:42  雾深  阅读(647)  评论(0)    收藏  举报