0

さまざまなプラットフォームでのアクセント文字に問題があります。

これをマシンでfedora (デフォルトの文字セットは UTF-8) でログに記録すると、正しくSacré Coeur として出力されます。

しかし、RedHat (デフォルトの文字セットは ISO-8859-1) で 実行されている別のサーバーに更新すると、 Sacré Coeur として印刷されます。

私のFedoraマシンと同じようにRedHatサーバーにログインしたい。これどうやってするの?

私のワークアウト:

  • System.setProperty("file.encoding", "ISO-8859-1"); を変更しようとしました。逆バージョンを実行する目的でローカルで System.setProperty("file.encoding", "UTF-8"); RedHat サーバーで、ローカルでのログイン方法を変更した場合。しかし、何も変わりませんでした。
  • アクセント文字に関するスレッドがいくつかあることに気付きましたが、nithing が答えてくれます。そういうわけで、私は新しい質問をしました。
  • 私もこれを試しましたが、うまくいきませんでした。

    System.setProperty("file.encoding","ISO-8859-1"); Field charset =Charset.class.getDeclaredField("defaultCharset"); charset.setAccessible(true); charset.set(null,null);

  • しかし、JVM の開始時に文字セットを設定しようとしませんでした。それが機能する場合は、どうすればよいか説明してください。
4

1 に答える 1

1

サーバー OS のデフォルトの文字エンコーディングに依存せずに、すべての環境から同様の出力を得るには、プログラムまたはサーバー環境 (Jboss tomcat または jetty) を起動するときに -Dfile.encoding を起動スクリプトに渡します。

(jboss で run.sh と言って、-Dfile.encoding=UTF-8 を JAVA_OPTS に追加します)

-Dfile.encoding=UTF-8

于 2013-03-06T06:17:26.390 に答える