我有Java應用程序,用戶從用戶界面輸入「西班牙字符」並需要在其他頁面上顯示。在WINDOWS環境下應用程序沒問題,但是在UNIX/Linux服務器上部署時,西班牙文字符顯示不正確。Linux服務器不支持西班牙字符
這是我的Unix語言環境設置(使用區域設置命令)
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
我的UNIX框字符編碼器(用java我檢查Charset.defaultCharset()
)是ISO 8859 1
和我的Java代碼來顯示這個數據是
spanishName = new String(spanishName.getBytes("8859_1"), "UTF-8");
現在正在打印N?? L???d?
如果我直接打印這個變量,然後NT= LTß±dTr
。
但原數據是Néó Léáñdér
您每次都假設ISO拉丁語。也許你在* nix服務器中部署時不需要轉換爲Unicode。 – Mena
對不起,這有些含糊......當使用ISO-8859-1或ASCII時,顯然你不能可視化這些字符,因爲它們沒有被包含並且必須被誤解。這裏的問題是_why_你的環境有這樣的設置。除非另有說明,今天的Linux系統因此使用UTF-8編碼。所以你的語言環境設置應該像'en_US.UTF-8' ... – arkascha
我認爲,我們使用舊的UNIX框,並且更改這些設置超出了我的範圍。我需要在我的代碼中正確的數據。請告訴我,我們是否可以在我們的java代碼中處理或覆蓋它。只是爲了我的信息,我們如何更改unix框中的_locale settings_? – user3035305