2

現在、Vaadin とVaadin Bean Validation for Java Bean Validation API 1.0 (JSR-303) という名前のアドオンを使用しています。この API の実装は hibernate-validator です。

文字セットが UTF8 のカスタム プロパティ ファイルがあります。しかし、この仕組みでは、「éèà」などの特殊文字は常に間違って表示されます。

どうすればこれを修正できますか?

4

2 に答える 2

4

プロパティファイルは、ISO-8859-1を使用して読み取られた仕様に準拠しています。

...入力/出力ストリームはISO8859-1文字エンコードでエンコードされます。このエンコーディングで直接表現できない文字は、Unicodeエスケープを使用して記述できます。エスケープシーケンスでは、単一の「u」文字のみが許可されます。native2asciiツールを使用して、プロパティファイルを他の文字エンコードとの間で変換できます。

したがって、 ISO-8859-1の範囲でカバーされていない文字は、 Unicodeエスケープシーケンス でエスケープする必要があります\uXXXX。JDKが提供native2asciiするツールを使用してそれらを変換できます。JDKの/binフォルダにあります。

foo_utf8.propertiesこれは、UTF-8を使用して保存しfoo.propertiesたものであり、アプリケーションで使用したいものであると想定した例です。

native2ascii –encoding UTF-8 foo_utf8.properties foo.properties

EclipseなどのIDEを使用している場合は、ファイルに自動的に関連付けられる組み込みのプロパティファイルエディターを使用でき.propertiesます。プレーンテキストエディタの代わりにこのエディタを使用すると、ISO-8859-1範囲でカバーされていない文字が自動的にエスケープされます。

于 2012-09-04T16:45:41.067 に答える
0

UTF-8 文字をエスケープするのはプロパティ ファイルです。

例えば:

foo.bar.max=Foo \u00E1 \u00E9 and \u00F6bar

次のように表示されます。

Foo á é and öbar

文字の変換に役立つツールを次に示します: http://rishida.net/tools/conversion/

于 2012-09-04T16:41:27.740 に答える