Spring util:属性 - 您可以将编码更改为UTF-8吗?

pha*_*man 5 spring properties utf-8

我正在努力将一些属性文件从iso-8859-1转换为utf-8.我为大多数资源文件实现了resource.control,因此它将读作utf-8编码.

我遇到了一个使用util:properties标签在spring中定义的属性文件.

我想知道是否有办法指定默认编码为utf-8?我确实研究了使用ReloadableResourceBundleMessageSource将其定义为bean的可能性,但是这需要一个大的重构过程,因为bean中的逻辑期望它是一个映射.

使用spring 3.0.5定义

<util:properties id="fooProperties" location="file:${AXE_APPCONFIG}/foo.properties"/>
Run Code Online (Sandbox Code Playgroud)

我知道根据定义java属性文件是iso-8859-1编码的,但是我认为spring可能已经想出了一种方法来改变它的编码(比如Resource.Control)

小智 8

我最近使用PropertiesFactoryBean解决了同样的问题.它是PropertiesLoaderSupport的子类,它具有一个公共setter方法,用于指定属性文件的编码.

<beans:bean id="nameOfYourPropsVar" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <beans:property name="location" value="classpath:${yourPropFileName}"/>
    <beans:property name="fileEncoding" value="UTF-8"/>
</beans:bean>
Run Code Online (Sandbox Code Playgroud)

请注意,根据api doc,它仅适用于经典属性文件,而不适用于XML文件.