美文网首页
【中文乱码】解决SpringBoot配置文件applicatio

【中文乱码】解决SpringBoot配置文件applicatio

作者: 书中自有白米粥 | 来源:发表于2019-07-15 11:52 被阅读0次

自己做了一个最简单的基于SpringBoot的控制台Console程序,用来做一些小工具,准备做一个本地文件名重命名的工具类。

首先,自己先熟悉一下怎么创建一个本地的控制台程序,然后在这个过程中,自己读取了配置文件中的信息,在读取的过程中,配置文件中我写入了中文,发现输出是乱码,而在普通的system.out.println(“日志信息”)中,却没有出现乱码,这说明乱码的问题是出现在读取配置文件上。

怎么解决这个问题呢:

参考了以下的文档

解决springboot读取配置文件中文乱码问题

同时,根据之前与阿韬一起开发的经验,估计是出现在项目工程的编码设置上。

现象如下:
下面的是我写的配置文件的内容,很简单:


配置文件内容.png

然后,写了一个很简单的类,用来读取配置文件中的内容并输出:

package com.zsh.renamefile.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

/*************************************************************
 * @Description: 一个最简单的本地服务例子,用来作为Console控制台程序的学习入门
 *
 * @Author: 白米粥
 * @Date: 2019-07-15 09:44
 *************************************************************/
@Service
public class HelloMessageService {

    @Value("${name:unknown}")
    private String name;

    public String getMessage() {
        return getMessage(name);
    }

    public String getMessage(String name) {
        return "Hello " + name;
    }

}

但是,输出的内容确是中文乱码,如下:

Connected to the target VM, address: '127.0.0.1:60133', transport: 'socket'

2019-07-15 10:11:41.315 INFO 11904 --- [ main] c.zsh.renamefile.RenamefileApplication : Starting RenamefileApplication on zsh with PID 11904 (E:\Program\zshsvn2\mycode\renamefile\target\classes started by zsh in E:\Program\zshsvn2\mycode\renamefile)

2019-07-15 10:11:41.324 INFO 11904 --- [ main] c.zsh.renamefile.RenamefileApplication : No active profile set, falling back to default profiles: default

2019-07-15 10:11:42.008 INFO 11904 --- [ main] c.zsh.renamefile.RenamefileApplication : Started RenamefileApplication in 1.232 seconds (JVM running for 2.344)

程序的实际入口在这里:

Hello ������

Disconnected from the target VM, address: '127.0.0.1:60133', transport: 'socket'

Process finished with exit code 0

首先,我的修改的方法如下:

点击idea菜单栏的File->Settings…->Editor->File Encodings选项卡

修改项目的编码配置.png

一共修改上面的三个地方,我个人觉得最有用的应该是最下面的一个Properties Files的设置,这个应该是最主要的地方,修改之后,点击保存。

修改之后,会发现配置文件整个编码都乱了,这个原因是以前使用的gbk的编码,现在修改为了utf-8,所以文件会变成乱码,所以在修改之前先复制粘贴,备份一下,然后再从粘贴板粘贴过去就好了。

修改后乱码的配置文件.png

覆盖如下:

重新覆盖配置文件.png

然后重新启动一下项目,但是编码变了,还是乱码:

Connected to the target VM, address: '127.0.0.1:60914', transport: 'socket'

2019-07-15 10:39:10.835 INFO 15156 --- [ main] c.zsh.renamefile.RenamefileApplication : Starting RenamefileApplication on zsh with PID 15156 (E:\Program\zshsvn2\mycode\renamefile\target\classes started by zsh in E:\Program\zshsvn2\mycode\renamefile)

2019-07-15 10:39:10.840 INFO 15156 --- [ main] c.zsh.renamefile.RenamefileApplication : No active profile set, falling back to default profiles: default

2019-07-15 10:39:11.984 INFO 15156 --- [ main] c.zsh.renamefile.RenamefileApplication : Started RenamefileApplication in 1.871 seconds (JVM running for 3.233)

程序的实际入口在这里:

Hello �米粥

Disconnected from the target VM, address: '127.0.0.1:60914', transport: 'socket'

Process finished with exit code 0

乱码问题没有得到解决,仅仅只是乱码方式变了。

最后参考以下解决办法:

关于Spring boot中读取属性配置文件出现中文乱码的问题

配置文件进行如下配置,增加spring.message.encoding=UTF-8,再次运行,就解决了配置文件中文乱码的问题了。

#设置编码格式 #返回页面、数据中文乱码问题 #server.tomcat.uri-encoding=UTF-8
#spring.http.encoding.force=true
#spring.http.encoding.charset=UTF-8
#spring.http.encoding.enabled=true
#解决程序读配置文件乱码问题  
spring.message.encoding=UTF-8 name=白米粥

运行结果如下:

正确的输出结果.png

乱码问题得到解决。

相关文章

网友评论

      本文标题:【中文乱码】解决SpringBoot配置文件applicatio

      本文链接:https://www.haomeiwen.com/subject/xdggkctx.html