2010-07-05 143 views
2

我試圖寫一個CSV文件包括用java阿拉伯語數據阿拉伯語編碼與Windows

PrintWriter out = new PrintWriter("file.csv", "UTF8"); 

和當我打開Linux機器的文件,阿拉伯文顯示正常,但它不工作windows機器。

和設置編碼時爲 「Cp1256」 爲

PrintWriter out = new PrintWriter("file.csv", "Cp1256"); 

阿拉伯語顯示精細使用Windows XP &的window7但沒有與Linux和Windows Vista。

那麼什麼是正確的編碼,使文件適用於所有操作系統?

由於提前

Neveen

+0

「display」是什麼意思?所有非破壞的GUI應用程序都可以在所有操作系統上使用UTF-8文本正常工作;有時您必須使用BOM或在加載文件之前明確指定編碼。 – Philipp 2010-07-05 09:12:17

+0

我的意思是通過顯示罰款「所有字符寫入正確的編碼」。 – Neveen 2010-07-05 09:19:59

+0

是的,但在哪些程序? – Philipp 2010-07-05 09:23:39

回答

1

正確的方法是使用Unicode編碼,如UTF-8,在你的第一個例子。像Windows-1256這樣的編碼是不可移植的並且已經過時;甚至微軟建議不要這樣做。

請指定您想要顯示文件的確切位置(控制檯,文本編輯器...)。 Windows控制檯在字體和編碼方面有一些與Unicode相關的問題,但是在任何GUI應用程序中顯示文件在所有現代(2000年以後)操作系統上都應該沒問題。

+0

我想將文件顯示到excel編輯器中,但阿拉伯文不能很好地顯示「UTF-8」 謝謝 – Neveen 2010-07-05 09:13:11

+0

我對Excel幾乎沒有經驗,但我想它可以處理UTF-8文件。也許你必須在加載文件時指定編碼。你可以在例如記事本? - 我認爲這更像是一個Excel而不是Java問題;試着問SuperUser。 – Philipp 2010-07-05 09:23:20