Deltaspike i18n 编码错误

Deltaspike i18n encoding error

我正在使用 Deltaspike Core 检索和显示不同语言的消息。我使用默认的 MessageContext 实现,但使用自定义 MessageResolver。它工作正常,直到我尝试使用编码为 UTF-8 的属性文件。

UTF-8 文件 locale_source.properties 包含一条消息:

messageKey=Localización no disponible.

我的代码如下所示:

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 no disponible.

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

谢谢。

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

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