0

LWUIT を使用してモバイル アプリを作成しています。HTMLComponent を使用してヘルプ テキストをユーザーに表示しました。ヘルプ言語はペルシア語 (アラビア文字を使用) であることに注意してください。
ほとんどの携帯電話では正常に動作しますが、他の携帯電話 (Samsung B3410W など) では、文字の代わりに疑問符が表示されるだけです。
設定しましHTMLCallbackparsingErrorが、まったく呼び出されません。
html コードを設定する命令は次のとおりです。

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

メソッドをbody呼び出すことによって読み取られる文字列DataInputStream.readUTF()です。

私が欠けているものを知っている人はいますか?

PS アプリケーションの他の部分 (ラベル、フォームなど) は、アラビア文字で大きな問題はありません。問題があるのは HTMLComponent だけです。

ありがとうございました


エンコードの「UTF8」を「UTF-8」に変更したところ、問題の端末が正常に動作するようになりました。(少なくとも一部の) サムスンのモデルでは、そのエンコーディングの名前として「UTF-8」が使用されているようです。

しかし、一部の携帯電話では「UTF-8」に問題があり、「UTF8」を受け入れる可能性があるのではないかと心配しています。

すべての電話で動作させるためにできることはありますか?

4

2 に答える 2

2

これらの問題は、不適切なエンコーディングが原因で発生します。readUTF() に到達するまでに、データはすでに破損していると思います。問題のある Unicode 値を持つ単一の文字本体を作成するという簡単な実験を行い、文字の数値を出力して、期待する Unicode 値と一致するかどうかを確認します。

于 2011-11-10T07:10:55.927 に答える
1

おそらく同じ問題です: LWUIT を使用する Samsung モバイルでアラビア語フォントがサポートされないのはなぜですか?

LWUIT はアラビア語のビットマップ フォントをサポートしていません。フォント タイプが「システム」の場合、アラビア語のサポートを基盤となる OS に委譲するだけです。基礎となる電話 OS にアラビア語のサポートが含まれていない場合、LWUIT はアラビア語では機能しません。

これを回避するために、アラビア語のビットマップ フォントをサポートするように LWUIT を変更して実装しようとする人もいます。以下の変更以降、これらの変更は組み込まれていません。

a. それらは非常に複雑で、言語に依存しています。b. それらは、入力を受け入れる問題を解決しません。c. アラビア語を話す国のほとんどのデバイスはアラビア語をサポートする必要があるため、かなりニッチな問題です。

これらのソリューションはあなたのニーズには十分かもしれませんが、個人的には、そのごく一部のデバイスについては努力しません。

于 2011-11-09T15:16:14.620 に答える