我正在使用Deltaspike Core检索和显示不同语言的消息。我正在使用默认的MessageContext实现,但使用自定义的MessageResolver。它工作正常,直到我尝试使用编码为UTF-8的属性文件。
UTF-8文件是locale_source.properties,带有消息:
messageKey =Localizaciónnotdisponible。
我的代码看起来像这样:
public class MessageBuilder {
@Inject
private MessageContext messageContext;
@PostConstruct
public void init() {
messageContext.messageSource(LOCALE_SOURCE);
}
@Override
public Message create(String key) {
Message m = messageContext
.clone()
.localeResolver(new MyOwnLocaleResolver())
.message()
.template("{" + key + "}");
...
System.out.println(messageBuilder.create(messageKey).toString());
它检索邮件但编码错误:
Localización没有任何不可取的。
如你所见,它改变了³的ó。是否有东西指定属性文件的编码?我还能做些什么来解决这个问题?
感谢。
答案 0 :(得分:0)
我看到这个回答了我的问题:How to use UTF-8 in resource properties with ResourceBundle
因此解决方案基本上是将属性文件保存在Latin1中,并使用unicode代码\ uXXXX来表示那些编码未涵盖的符号。