zoukankan      html  css  js  c++  java
  • springboot学习一 idea配置文件乱码

    采用IDEA进行springboot开发时,在application.properties配置的中文乱码

    配置文件如下:

    server.port=8080
    server.servlet.context-path=/shiro
    spring.application.name=shiro
    
    spring.mvc.view.prefix=/
    spring.mvc.view.suffix=.jsp
    
    user.user-name=张三

    对应绑定的配置类:

    @Component
    @ConfigurationProperties(prefix = "user")
    @Data
    public class User {
        private String userName;
    }

    运行结果:

    User(userName=å¼ ä¸‰)

    .properties文件的编码方式以及IDEA的编码方式如下图:

    这些配置完之后还是乱码

    猜测应该是把流输入进来,但是没有按照UTF8编码进行解析,采取了别的解析方式。采用原始的读配置文件方式读配置文件,并采取utf8进行解析,代码如下:

    InputStream inputStream = UserController.class.getClassLoader().getResourceAsStream("application.properties");
    
    
    
            Properties utf8Properties=new Properties();
            try {
                utf8Properties.load(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
                String property = utf8Properties.getProperty("user.user-name");
                log.info("{}",property);
    
            } catch (IOException e) {
                e.printStackTrace();
            }

    运行结果:

    2021-09-12 16:34:14.776  INFO 12028 --- [nio-8080-exec-2] c.t.s.controller.UserController          : 张三

    说明上述猜测是对的,那么只要配置好springboot的编码方式就可以解决上述问题:

    server.servlet.encoding.force=true
    server.servlet.encoding.charset=UTF-8
    server.servlet.encoding.enabled=true
    server.tomcat.uri-encoding=UTF-8

    运行结果

    INFO 27248 --- [nio-8080-exec-1] c.t.s.controller.UserController: User(userName=张三)
    INFO 27248 --- [nio-8080-exec-1] c.t.s.controller.UserController: 张三
  • 相关阅读:
    2021.4.11(每周总结)
    2021.4.9
    2021.4.8
    2021.4.7
    k8s集群安装(一)安装方案介绍
    k8s映射外部服务Endpoints
    Linux服务器配置上网代理squid
    SonarQube学习笔记
    yum安装指定版本mysql
    linux目录没有颜色的处理
  • 原文地址:https://www.cnblogs.com/cplinux/p/15259182.html
Copyright © 2011-2022 走看看