我正在尝试在java中显示阿拉伯语文本,但它显示垃圾字符(例如:¤[ï߯[î]或有时仅打印时出现问号)。我怎么做它打印阿拉伯语。我听说它与unicode和UTF-8有关。这是我第一次使用语言,所以不知道。我正在使用Eclipse Indigo IDE。
编辑: 如果我使用UTF-8编码,那么“¤[ï߯[î”字符正在变成“?????????”字符。
答案 0 :(得分:7)
对于初学者,你可以看看here。这应该允许你在它的控制台中创建Eclipse打印unicode(我不知道它是否是Eclipse支持开箱即用而没有任何额外的调整)
如果这不能解决您的问题,您很可能会遇到程序正在使用的编码问题,因此您可能希望以某种方式创建字符串:
String str = new String("تعطي يونيكود رقما فريدا لكل حرف".getBytes(), "UTF-8");
这至少对我有用。
答案 1 :(得分:2)
如果您将文本字面嵌入代码中,请确保正确设置项目的编码。
答案 2 :(得分:1)
这适用于Java SE,Java EE还是Java ME?
如果这是针对Java ME的,那么如果使用LWUIT,则必须自定义GlyphUtils。
下载此文件:
http://dl.dropbox.com/u/55295133/U0600.pdf
查看unicode编码列表..
看看这个帖子:
https://stackoverflow.com/a/9172732/1061371
在由bernama Alex Kliuchnikau编辑的Mohamed Nazar的答案(帖子)中,
“以下代码可用于在J2ME String s=new String("\u0628\u06A9".getBytes(), "UTF-8");
中显示阿拉伯语文本,其中\u0628\u06A9
是两个阿拉伯字母的unicode”
看看U0600.pdf文件,我们可以看到Mohamed Nazar和Alex Kliuchnikau举例说明了阿拉伯语中的“ba”和“kaf”字符。
然后你必须考虑的最后一点是:“确保你的UI支持unicode(我的意思是阿拉伯语)字符。” 就像LWUIT不支持unicode(我的意思是阿拉伯语)字符。 如果您的应用程序使用LWUIT,您应该制作自定义代码。