彻底解决和理解 Spring Boot 中文乱码

本文将介绍怎样解决在开发过程及正式生成环境中 Spring Boot 出现中文乱码问题。

在日常开发中,只要涉及到中文显示,都避免不了出现中文乱码。那么中文乱码是怎样产生的呢?其实就是我们字符编码不一致导致的,例如:我们使用 IDEA 开发项目时,项目采用的是 UTF-8 编码,而启动项目时的控制台采用的 GBK 编码,此时,就会产生中文乱码。

知道中文乱码的产生原因,接下来就根据乱码产生的原因去解决中文乱码。下面分别介绍开发环境(使用 IDEA 启动项目)和正式环境(直接使用 DOS 运行项目)中文乱码的解决办法。

开发环境(IDEA环境)

打开 IDEA,查看 Editor/File Encodings 中 Project Encoding,如下图:

彻底解决和理解 Spring Boot 中文乱码

上图中显示,项目编码为 GBK(系统默认编码)。

我们再查看一下 IDEA 的控制台编码(使用 chcp 命令查看),如下图:

彻底解决和理解 Spring Boot 中文乱码

上图显示,当前控制台的编码为 936,表示编码为 GBK。

如果 IDEA 控制台出现中文乱码,则将上面两者的编码保持一致即可。

生成环境

Spring Boot 在生产环境通常通过提供的启动/停止脚本进行启动和停止,Windows 下使用 DOS 窗口运行,查看输出的启动日志信息。如果启动日志中有中文,可能出现乱码。导致出现中文乱码是因为控制台和代码的编码不一致导致,如:控制台 GBK 编码,代码是 UTF-8 编码。

假如项目的编码为 UTF-8,解决方法如下:

(1)先确认控制台的编码,有两种方式:

a、运行 chcp 命令,如下图:

彻底解决和理解 Spring Boot 中文乱码

b、打开 DOS 窗口,查看 DOS 窗口的 “属性/选项”,如下图:

彻底解决和理解 Spring Boot 中文乱码

系统默认编码为 936(ANSI/OEM - 简体中文 GBK)。

(2)DOS 窗口运行 “chcp 65001” 命令将 DOS 窗口编码改为 UTF-8,如下图:

彻底解决和理解 Spring Boot 中文乱码

当然,你也可以在启动脚本中添加 “chcp 65001” 命令(这是临时修改,关闭 DOS 后失效,永久修改需要在修改注册表,不推荐)。

游手好闲地学习,并不比学习游手好闲好。 —— 约翰·贝勒斯
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号