2014-08-31 88 views
1

我有一個小的Java應用程序。我在eclipse中開發它。它從XML文件獲取文本並將其上傳到網站。在蝕刻中永恆的工作正常。但是當我編譯我的應用程序到可執行jar並從cmd啓動時,會出現一個很大的麻煩 - 所有非拉丁字符都會轉換成不可讀的符號。java - 檢測並更改編碼

我試過把<?xml version="1.0" encoding="windows-1251" ?><?xml version="1.0" encoding="utf-8" ?>但它沒有幫助。

我該如何解決這個問題?

任何幫助appriciated!

+0

如果我沒有記錯,試試''Cp850「'(MS-DOS western)。如果我是對的,我想哭泣。順便說一句,不是在XML中,而是在你寫的地方。 – 2014-09-02 15:59:40

回答

0

您可以嘗試在輸出寫入器的構造函數中明確指定UTF-8 Charset(或任何其他supported charset)。

例如,使用PrintWriter類用於輸出數據時:使用OutputStreamWriter類時

Writer writer = new PrintWriter("myfile.txt", "UTF-8"); 
writer.write("Hällo Wörld!"); 
writer.close(); 

的等效示例:

Writer writer = new OutputStreamWriter(System.out, "UTF-8"); 
writer.write("Hällo Wörld!"); 
writer.close(); 

(請注意,在兩種情況下,Charset必須是通過其文本名稱(即「UTF-8」)指定,而不是通過直接實例化相應類別。)

因此,你的問題的一個可能的解釋是,由於沒有明確地給出字符集,所以系統試圖回退到你的操作系統的默認編碼(可能不是UTF-8)。