Dipaly фарси текст в Android WebView (для телефонов, не поддерживающих фарси)

В фарси буквы соединяются вместе для написания сценариев. Однако, когда я сохраняю HTML-страницы с использованием оболочек "UTF-8" или "Windows-1256" и пытаюсь отобразить их с помощью веб-просмотра в Android, буквы отображаются отдельно и в направлении слева направо (вместо RTL). Я должен отметить, что этот случай не происходит в телефонах, поддерживающих фарси.

Правильная форма должна быть такой (снимок с телефона, поддерживающего фарси):
Образец правильной формы
Плохо сформированный текст происходит в телефонах, не поддерживающих фарси (персидский):

Образец плохо сформированного дисплея

Следует отметить, что я использовал персидский шрифт в обоих случаях. Я также вижу некоторые решения для обычных строк в Java, который меняет символ на один в этом вопросе

Мой вопрос: могу ли я исправить это (или это должно быть исправлено поставщиками телефонов)? если возможно, что решение?

2 ответа

Решение

Я часто сталкивался с этой ошибкой, когда играл на клавишных. Проблема в том, что встроенная функция canvas.drawText в Android не поддерживает языки RTL. Был патч для него, но он не был частью сборки Android по умолчанию. Таким образом, только модели, выходящие в те части мира, которые использовали это, имели тенденцию иметь это. К сожалению, я не знаю способа проверить, есть ли у него патч. И если этого не произойдет, нет способа исправить это. Вы можете попробовать поменять текст, но тогда вы сломаете устройства, на которых есть патч.

Короче говоря - нет способа это исправить. Тем не менее, я был бы шокирован, если бы Google не поднял патч в основной строке (он существовал еще в 2,2 дня), так что это привело к сокращению количества телефонов.

Вы можете попробовать сделать HTML с обратной последовательностью шрифтов! просто напишите приложение для Windows, чтобы получить шрифт и поставить обратный, и использовать его на вашем устройстве Android

Другие вопросы по тегам