0

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

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

wherebody是调用DataInputStream.readUTF()方法读取的字符串。

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

PS 应用程序的其他部分(标签、表格等)与阿拉伯字母没有大问题。只是 HTMLComponent 有问题。

谢谢


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

但我担心其他一些手机可能对“UTF-8”有问题并接受“UTF8”。

有什么办法可以让它在所有手机上运行吗?

4

2 回答 2

2

这些问题是由于编码错误而发生的。我猜在您读取UTF()时数据已经损坏。做一个简单的实验,创建一个具有您遇到问题的 unicode 值的单个字符体,并打印出该字符的数值以查看它是否与您期望的 unicode 值匹配。

于 2011-11-10T07:10:55.927 回答
1

可能是同一个问题: 为什么使用 LWUIT 的三星手机不支持阿拉伯字体?

LWUIT 不支持阿拉伯语位图字体,当字体类型为“系统”时,我们只是将阿拉伯语支持委托给底层操作系统。如果底层手机操作系统不支持阿拉伯语,LWUIT 将无法与阿拉伯语一起使用。

为了解决这个问题,一些人努力通过修改 LWUIT 来支持阿拉伯位图字体。我们没有合并任何这些更改,因为:

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

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

于 2011-11-09T15:16:14.620 回答