LWUIT HTMLComponent在一些三星车型上显示问号

时间:2011-11-09 13:37:05

标签: java-me lwuit arabic html-components samsung-mobile

我正在使用LWUIT创建移动应用。 我使用HTMLComponent向用户显示帮助文本。请注意,帮助语言是Farsi(使用阿拉伯字母)。
在大多数手机上它工作正常但在其他手机上(例如三星B3410W)它只显示问号而不是字母。
我设置了HTMLCallback,但根本没有调用parsingError
设置html代码的指令是:

helpComponent.setHTML("<html dir=\"rtl\"><body><p align=\"justify\">" + body + "</p></body></html>", "UTF8", null, true);

其中body是通过调用DataInputStream.readUTF()方法读取的字符串。

有没有人知道我错过了什么?

P.S。其他应用部分(Lables,Forms等)对阿拉伯字母没有重大问题。这只是HTMLComponent有问题。

谢谢


我将“UTF8”改为编码为“UTF-8”,现在有问题的手机工作正常。似乎(至少一些)三星模型使用“UTF-8”作为该编码的名称。

但我担心其他手机可能会出现“UTF-8”问题并接受“UTF8”。

我能做些什么才能让它在所有手机上运行?

2 个答案:

答案 0 :(得分:2)

由于编码错误,会出现这些问题。我猜你的readUTF()时数据已经被破坏了。进行一个简单的实验,创建一个具有您遇到问题的unicode值的单个字体,并打印出该字符的数值,看它是否与您期望的unicode值匹配。

答案 1 :(得分:1)

这可能是同样的问题: Why arabic font not supported in Samsung mobiles using LWUIT?

  

当字体类型为'system'时,LWUIT不支持阿拉伯语位图字体   将阿拉伯语支持委托给底层操作系统。如果底层   手机操作系统不包括阿拉伯语支持LWUIT不适用于阿拉伯语。

     

为了解决这个问题,一些人已经努力实施阿拉伯语   位图字体通过修改LWUIT来支持它。我们没有   自以下以来包含任何这些变化:

     

一个。它们非常复杂并且依赖于语言。湾他们没有解决   接受投入的问题。 C。大多数阿拉伯语设备   各国应该支持阿拉伯语,因此它是一个非常小的问题。

     

这些解决方案可能足以满足您的需求,但我个人而言   不会为那一小部分设备付出努力。