LWUIT HTMLComponent показывает знаки вопроса на некоторых моделях Samsung - PullRequest
0 голосов
/ 09 ноября 2011

Я создаю мобильное приложение, используя LWUIT.Я использовал HTMLComponent, чтобы показать пользователю текст справки.Обратите внимание, что справочный язык - фарси (который использует арабские буквы).
На большинстве телефонов работает нормально, но на других (например, Samsung B3410W) вместо букв отображаются только знаки вопроса.
Я установил HTMLCallback, но parsingError не вызывается вообще.
Инструкция, которая устанавливает html-код, такова:

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

, где body - строка, читаемая с помощью метода DataInputStream.readUTF().

Кто-нибудь знает, что я?m отсутствует?

PS В других частях приложения (Lables, Forms и т. д.) нет серьезных проблем с арабскими буквами.Это просто HTMLComponent, который проблематичен.

Спасибо


Я изменил «UTF8» для кодирования на «UTF-8», и теперь проблемный телефон работает нормально.Кажется (по крайней мере, некоторые) модели Samsung используют «UTF-8» в качестве названия этой кодировки.

Но я беспокоюсь, что некоторые другие мобильные телефоны могут иметь проблемы с «UTF-8» и принять »UTF8 ".

Можно ли что-нибудь сделать, чтобы оно работало на всех телефонах?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Эти проблемы возникают из-за плохой кодировки. Я предполагаю, что данные уже повреждены к тому времени, как вы начали читать UTF (). Проведите простой эксперимент по созданию тела с одним символом, у которого есть значение Unicode, с которым у вас возникли проблемы, и распечатайте числовое значение символа, чтобы увидеть, соответствует ли оно значению Unicode, которое вы ожидаете.

1 голос
/ 09 ноября 2011

Вероятно, это та же проблема: Почему арабский шрифт не поддерживается на мобильных устройствах Samsung с использованием LWUIT?

LWUIT не поддерживает арабские растровые шрифты, когда тип шрифта равен 'Система «мы просто делегируем арабскую поддержку базовой ОС.Если базовая операционная система телефона не поддерживает арабский язык, LWUIT не будет работать с арабским языком.

Чтобы обойти это, некоторые люди предприняли попытки внедрить арабские растровые шрифты, изменив LWUIT для поддержки этого.Мы не включили эти изменения с тех пор:

a.Они очень сложны и зависят от языка.б.Они не решают проблему принятия входных данных.с.Большинство устройств в арабоговорящих странах должны поддерживать арабский язык, так что это довольно нишевая проблема.

Этих решений может быть достаточно для ваших нужд, но лично я бы не стал прилагать усилия для этой небольшой части устройств.

...