1

私たちは学校向けのプロジェクトに取り組んでいます。このプロジェクトは必須の 3 か国語 (オランダ語、英語、フランス語) であるため、「英語に変更する必要はありません」という回答です。

すべてのクラスとリソース ファイルは UTF-8 形式でエンコードされており、すべての非標準英語文字がクラス自体で正しく表示されます。

問題は、テキストを表示しようとすると、すべての非標準の英語の文字が歪んでしまうことです。

これはエンコードの問題が原因であるとよく耳にしますが、私たちのプロジェクト全体が UTF-8 でエンコードされているため、それは疑いがあります。

以下は、フランスのリソース バンドルからの抜粋です。

VIDEOSETTINGS = Réglages du Vidéo
SOUNDSETTINGS = Réglages du son
KEYBINDSETTINGS = Keybind Paramètres
LANGUAGESETTINGS = Paramètres de langue
DIFFICULTYSETTINGS = Paramètres de Difficulté
EXITSETTINGS = Sortie les paramètres

これにより、次の表示文字列が生成されます。

提供されたリソースバンドル抽出の結果を表示する

私はこの問題の解決策に最も感謝しています

編集

追加情報については、Swing を使用してデスクトップ アプリを構築しています。

4

2 に答える 2

3

これは、エンコードの問題によるものです。

UTF-8 でエンコードされたバイトに対して間違ったデコーダー (おそらく ISO-8859-1) を使用しています。

これらの文字列はファイルに保存されていますか? ファイルをどのように読み込んでいますか?Propertiesクラス経由?からプレーンテキスト形式をロードするとき、Propertiesクラスは常に ISO-8859-1 デコードを適用しますInputStream。を使用している場合はPropertiesload(Reader)オーバーロードを使用するか、XML 形式に切り替えるか、一致するエンコーディングでファイルを書き直してください。また、 を使用Resource.getBundle()してプロパティ ファイルをロードする場合は、ISO-8859-1 エンコーディングを使用してそのファイルを書き込んで、非ラテン文字をエスケープする必要があります。

これはエンコーディングの問題であるため、文字エンコーディングの選択に使用したコードを投稿していただけると大変助かります。

于 2011-05-11T17:26:45.493 に答える
2

リソース ファイルを読み取るコードは表示されませんでした。ただし、コンストラクターで InputStream とともに PropertyResourceBundle を使用する場合、InputStream は ISO-8859-1 でエンコードする必要があります。その場合、ISO-8859-1 エンコーディングで表現できない文字は、Unicode エスケープで表現する必要があります。

native2asciiまたはAnyEditをツールとして使用して、プロパティを Unicode エスケープに変換できます。Eclipse プロジェクトでキリル文字の .properties ファイルを使用するを参照してください。

于 2011-05-11T17:27:03.323 に答える