簡體   English   中英

在Java下定義不同平台中的重音字符

[英]Defining accent characters in different platforms under java

我在不同平台上的重音符號存在問題。

當我在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 Server中,如果它更改了本地登錄方式。 但是什么都沒有改變。
  • 我注意到有幾個關於重音符號的主題,但是沒有什么能回答我的。 這就是為什么我問一個新問題。
  • 我也嘗試過這個 ,但是沒有用。

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

  • 但是我沒有嘗試在JVM啟動時設置字符集。 如果可以,請向我解釋我該怎么做?

為了從所有環境中獲得類似的輸出,而沒有依賴於服務器操作系統的默認字符編碼,在啟動程序或服務器環境(Jboss tomcat或jetty)時,將-Dfile.encoding傳遞給啟動腳本

(在jboss中說run.sh,將-Dfile.encoding = UTF-8添加到JAVA_OPTS)

-Dfile.encoding = UTF-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM