问题原因
中文乱码问题的主要原因是文件编码不匹配导致的。具体来说:
1. properties文件默认使用ISO-8859-1编码
2. 而我们的中文文件通常使用UTF-8编码
3. 当Spring读取文件时,如果没有正确指定编码,就会导致中文显示乱码
解决方案
1.首先设置编码
2.读取文件并获取properties对象的时候添加UTF-8
<bean id="highRiskAreas" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:addrs.properties"/>
<property name="fileEncoding" value="UTF-8"/>
</bean>
这个配置的作用是:找到指定的 properties 文件,使用 UTF-8 编码读取它,然后将文件中的键值对封装成一个 java.util.Properties 对象,并将这个 Properties 对象作为一个 Bean 放到 Spring 容器中(id 是 highRiskAreas)。
3.读取文件,设置UTF-8
<context:property-placeholder location="classpath:addrs.properties" file-encoding="UTF-8"/>
file-encoding="UTF-8": 这部分是告诉 Spring 在读取 addrs.properties 这个文件时,使用 UTF-8 这种编码方式来解析文件中的字节流。这是为了确保文件中的中文字符能够被正确地还原成 Java 字符串,方便在java程序中读取到value