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

本文介绍在Spring框架中如何处理*.properties文件的编码问题,提供了多种解决方案,包括在配置文件中直接指定编码、通过注解设置编码、使用Unicode编码保存文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在spring中我们常常使用.properties对一些属性进行一个提前配置,spring在读取∗.properties文件时,默认使用的是asci码,这时我们需要对其编码进行转换.当然方法有很多种,我说以下几种
1.在配置spring.xml文件时,声明所需的∗.properties文件时直接使用"utf−8"编码

<context:property-placeholder location="classpath:conf/*.properties" file-encoding="UTF-8"/>

2.如果在所需类上注入可使用以下方式来声明编码格式:

@Component
@PropertySource(value = "classpath:conf/copyWriteUI.properties",encoding = "utf-8")
@Getter
public class CopyWriteUI {
    @Value("${a}")
    private String a;
    @Value("${b}")
    private String b;
    }

3.不设置编码格式,编写文件时将中文转化为unicode编码

4、如果你用的是IntelliJIDEA那么按如下图操作以上步揍都可以省去啦!!!idea会自动帮我们进行如上的第三步,解放了我们的双手!
在这里插入图片描述
附录 spring context:property-placeholder/ 的属性说明

<context:property-placeholder  
        location="属性文件,多个之间逗号分隔" 
        file-encoding="文件编码" 
        ignore-resource-not-found="是否忽略找不到的属性文件" 
        ignore-unresolvable="是否忽略解析不到的属性,如果不忽略,找不到将抛出异常" 
        properties-ref="本地Properties配置" 
        local-override="是否本地覆盖模式,即如果true,那么properties-ref的属性将覆盖location加载的属性,否则相反" 
        system-properties-mode="系统属性模式,默认ENVIRONMENT(表示先找ENVIRONMENT,再找properties-ref/location的),NEVER:表示永远不用ENVIRONMENT的,OVERRIDE类似于ENVIRONMENT" 
        order="顺序" 
        />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值