spring cloud config 中文乱码

标签: spring cloud
22人阅读 评论(0) 收藏 举报
分类:

在使用 spring cloud config 时,如果在 properties 文件里面有中文的话,会出现乱码。
这里写图片描述

乱码的原因是:spring 默认使用org.springframework.boot.env.PropertiesPropertySourceLoader 来加载配置,底层是通过调用 Properties 的 load 方法,而load方法输入流的编码是 ISO 8859-1

这里写图片描述

解决方法:实现org.springframework.boot.env.PropertySourceLoader 接口,重写 load 方法

public class MyPropertiesHandler implements PropertySourceLoader {

    private static final Logger logger = LoggerFactory.getLogger(MyPropertiesHandler.class);

    @Override
    public String[] getFileExtensions() {
        return new String[]{"properties", "xml"};
    }

    @Override
    public PropertySource<?> load(String name, Resource resource, String profile) throws IOException {
        if (profile == null) {
            Properties properties = getProperties(resource);
            if (!properties.isEmpty()) {
                PropertiesPropertySource propertiesPropertySource = new PropertiesPropertySource(name, properties);
                return propertiesPropertySource;
            }
        }
        return null;
    }

    private Properties getProperties(Resource resource) {
        Properties properties = new Properties();
        InputStream inputStream = null;
        try {
            inputStream = resource.getInputStream();
            properties.load(new InputStreamReader(inputStream, "utf-8"));
            inputStream.close();
        } catch (IOException e) {
            logger.error("load inputstream failure...", e);
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    logger.error("close IO failure ....", e);
                }
            }
        }
        return properties;
    }
}

resources下新建 META-INF 文件夹,新建一个 spring.factories 文件

org.springframework.boot.env.PropertySourceLoader=com.example.configserver.MyPropertiesHandler

重启服务,可以看到中文正常显示了
这里写图片描述

查看评论

Spring Boot/Spring Cloud解决中文乱码

乱码的描述(废话): 中文都成了乱码。 我在网上找了很多解决方案,但是基本上都没解决我的问题,直到翻了一下午的帖子找到了一个解决我项目乱码的一个解决方案。一般乱码问题基本上都是...
  • zhanghaishan
  • zhanghaishan
  • 2017-12-25 17:31:12
  • 1134

spring使用@Value标签读取.properties文件的中文乱码问题的解决

beginbeginspring使用@Value标签读取*.properties文件的中文乱码问题的解决spring 中文乱码 @Value *.properties在spring中我们常常使用.pr...
  • J3oker
  • J3oker
  • 2016-12-23 14:33:36
  • 9405

Spring Cloud入门之Spring Cloud Config(高可用,刷新配置)

原文链接:http://www.dubby.cn/detail.html?id=90221.高可用为了高可用一般最传统的做法就是:这个就是使用一个负载均衡设备来隐藏后面的配置服务器集群,这是很容易想到...
  • u011499747
  • u011499747
  • 2017-09-12 23:24:40
  • 4660

史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)

简介在分布式系统中,spring cloud config 提供一个服务端和客户端去提供可扩展的配置服务。我们可用用配置服务中心区集中的管理所有的服务的各种环境配置文件。配置服务中心采用git的方式存...
  • forezp
  • forezp
  • 2017-04-10 21:18:06
  • 235497

开始Spring Cloud Config

Spring Cloud Config项目提供了一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分。Spring Cloud Config Sever的管理git或svn的外...
  • wh_ouyangshuang
  • wh_ouyangshuang
  • 2015-08-27 18:13:26
  • 37816

springcloud config 访问配置文件

springcloud config
  • tengdazhang770960436
  • tengdazhang770960436
  • 2017-06-30 12:46:06
  • 1146

SpringMVC form表单中文乱码解决方案(基于JavaConfig)

SpringMVC表单提交数据后,数据库中的数据中文乱码,通过show variables like "%char%"; 查看数据库编发,发现的确是UTF-8,说明数据库没有问题,问题出在服务器上。 ...
  • zhoucheng05_13
  • zhoucheng05_13
  • 2017-03-25 18:58:37
  • 955

彻底解决Spring MVC 中文乱码 问题

1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 修改w...
  • kalision
  • kalision
  • 2015-06-10 14:03:24
  • 216926

springcloud config server 服务配置中心 服务器端

  • 2017年02月20日 10:23
  • 19KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 1754
    积分: 282
    排名: 28万+