gpt4 book ai didi

java - 未检测到 Spring MessageSource 属性文件第一行

转载 作者:行者123 更新时间:2023-12-02 09:37:25 29 4
gpt4 key购买 nike

我正在使用 Spring 4 并使用 MessageSource 进行本地化。

我的 xml 文件有:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:i18n/myfile"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>

本地化文件之一 myfile_nl.properties 具有:

prop1=abc
other1=o1
other2=o2
other3=o3

获取本地化字符串的Java代码是:

@Autowired
private MessageSource messageSource;

String localizedMsg = messageSource.getMessage("prop1", null, locale);

现在,我收到异常,找不到 prop1。因此,我编辑了属性文件以将 prop1 复制到文件中。

other1=o1
other2=o2
prop1=abc
other3=o3

现在 prop1 已被检测到。

为什么 prop1 在第一行时没有被检测到?

最佳答案

您的属性文件(UTF-8 格式)可能以 BOM ( Byte Order Mark ) 开头。

由于 Java 不执行 BOM,3-byte BOM被视为不可显示的 BOM 字符,并成为第一行中列出的属性名称的一部分,这当然会使其不匹配。

在可以保存不带 BOM 的文件的文本编辑器中编辑文件。

Notepad++ 就是此类文本编辑器的一个示例。请参阅:Remove a BOM character in a file .

关于java - 未检测到 Spring MessageSource 属性文件第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381621/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com