我正在使用LWUIT创建一个移动应用程序。我使用HTMLComponent向用户显示帮助文本。注意,帮助语言是波斯语(它使用阿拉伯字母)。
在大多数手机上,它工作正常,但在其他手机(如三星B3410W)上,它只显示问号而不是字母。
我已经设置了HTMLCallback,但是根本没有调用parsingError。
设置html代码的指令如下:
helpComponent.setHTML("<html dir=\"rtl\"><body><p align=\"justify\">" + body + "</p></body></html>", "UTF8", null, true);其中body是通过调用DataInputStream.readUTF()方法读取的字符串。
有人知道我错过了什么吗?
申请的其他部分(标签、表格等)对阿拉伯字母没有重大问题。只有HTMLComponent才是问题所在。
谢谢
我把编码的"UTF8“改为"UTF-8”,现在这台有问题的手机工作正常。看起来(至少有些)三星的型号使用"UTF-8“作为编码的名称。
但我担心的是,其他一些手机可能有问题,"UTF-8“,并接受"UTF8”。
我能做些什么让它在所有手机上工作吗?
发布于 2011-11-10 07:10:55
这些问题的发生是因为编码错误。我猜当您到达readUTF()时,数据已经损坏了。做一个简单的实验,创建一个具有unicode值(您有问题)的单个字符体,并打印出该字符的数字值,以查看它是否与您预期的unicode值匹配。
发布于 2011-11-09 15:16:14
这可能是同样的问题:Why arabic font not supported in Samsung mobiles using LWUIT?
LWUIT不支持阿拉伯位图字体,当字体类型是“system”时,我们只是将阿拉伯语支持委托给底层操作系统。如果底层的电话操作系统不包括阿拉伯语支持,LWUIT将无法使用阿拉伯语。
为了解决这个问题,一些人通过修改LWUIT来实现阿拉伯位图字体。我们没有包含任何这些更改,因为:
它们非常复杂,而且依赖于语言。他们不能解决接受意见的问题。c.阿拉伯语国家的大多数设备应该支持阿拉伯语,因此这是一个相当特殊的问题。
这些解决方案可能足以满足您的需求,但就我个人而言,我不会为那么一小部分设备付出努力。
https://stackoverflow.com/questions/8065801
复制相似问题