0

さまざまな言語でメッセージを取得および表示するために、Deltaspike Core を使用しています。デフォルトの MessageContext 実装を使用していますが、カスタム MessageResolver を使用しています。UTF-8として成文化されたプロパティのファイルを使用しようとするまでは、うまくいきました。

UTF-8 ファイルは locale_source.properties で、次のメッセージが含まれています。

messageKey=ローカリゼーションは責任を負いません。

そして、私のコードは次のようになります。

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.

ご覧のとおり、 ó がóに変わります。プロパティ ファイルのコード化を指定するものはありますか? この問題を解決するために他に何ができますか?

ありがとう。

4

1 に答える 1

1

私の質問に答えるこれを見ました:ResourceBundleを使用してリソースプロパティでUTF-8を使用する方法

したがって、解決策は基本的に、プロパティ ファイルを Latin1 に保持し、Unicode コード \uXXXX を使用して、そのエンコーディングでカバーされていないシンボルを表すことです。

于 2016-10-01T10:00:01.380 に答える