Deltaspike i18n编码错误

时间:2016-09-30 17:05:39

标签: java internationalization cdi deltaspike

我正在使用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没有任何不可取的。

如你所见,它改变了³的ó。是否有东西指定属性文件的编码?我还能做些什么来解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:0)

我看到这个回答了我的问题:How to use UTF-8 in resource properties with ResourceBundle

因此解决方案基本上是将属性文件保存在Latin1中,并使用unicode代码\ uXXXX来表示那些编码未涵盖的符号。