2010-07-05 99 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