美文网首页
【中文乱码】解决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