使用Spring PropertyPlaceholderConfigurer 配置中文出现乱码的解决方法
2017-10-25 14:41
483 查看
问题描述
在使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer读取配置文件时,发现对于中文的处理会出现乱码现象,比如有如下的配置项及其内容:
content.shell=#!/bin/bash \necho "test,测试一下!!" \nsleep $1
采用如下的配置方式:
<bean id="propertyConifgurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:evn.properties</value> </property> </bean>
通过Spring获取到的配置项内容,中文变成了乱码。
解决方法
通过了解类org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的继承关系,发现父类
org.springframework.core.io.support.PropertiesLoaderSupport中有这样的属性
fileEncoding,这一属性的使用是在loadProperties方法中:
/** * Load properties into the given instance. * @param props the Properties instance to load into * @throws IOException in case of I/O errors * @see #setLocations */ protected void loadProperties(Properties props) throws IOException { if (this.locations != null) { for (Resource location : this.locations) { if (logger.isInfoEnabled()) { logger.info("Loading properties file from " + location); } try { PropertiesLoaderUtils.fillProperties( props, new EncodedResource(location, this.fileEncoding), this.propertiesPersister); } catch (IOException ex) { if (this.ignoreResourceNotFound) { if (logger.isWarnEnabled()) { logger.warn("Could not load properties from " + location + ": " + ex.getMessage()); } } else { throw ex; } } } } }
通过添加
fileEncoding=utf-8属性可以解决上述问题:
<bean id="propertyConifgurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:evn.properties</value> </property> <property name="fileEncoding"> <value>utf-8</value> </property> </bean>
聊以总结!
相关文章推荐
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- spring使用多个PropertyPlaceholderConfigurer的配置
- 配置PL/SQL 及 出现中文乱码的解决方法
- Qt使用中文时,出现乱码解决方法
- Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
- spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer
- VC轻松解析XML文件--CMarkup使用方法(解决解析中文字符出现乱码问题)
- 使用Wordpress插件时出现中文乱码的解决方法
- 在 Spring.NET 中使用 PropertyPlaceholderConfigurer 设置配置参数
- android studio使用模拟器上时出现中文乱码问题解决方法
- net2.0中使用Cookie保存中文出现乱码的解决方法
- Win8.1中文版系统使用中文软件出现乱码的解决方法
- win7 64位系统使用VS2010生成时出现中文目录乱码问题的解决方法
- Spring配置文件中使用PropertyPlaceholderConfigurer配置获取jdbc的配置信息
- Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
- 使用swfupload上传文件出现中文乱码现象的解决方法
- 配置环境spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- 使用swfupload上传文件出现中文乱码现象的解决方法