Символ хинди не будет отображаться в веб-представлении правильно

У меня была база данных, в которой данные хранятся на хинди как u092eu0948u0902 u0924 и установка этого содержимого в webview, используя ниже.

  webview1.loadData(hindi_content, "text/html", "UTF-8");

но он будет отображаться как

hindi content display as

Я не знаю, почему это происходит. Любой, пожалуйста, предложите. как это исправить !

5 ответов


это происходит из-за ошибки с параметром кодирования loadData в большинстве версий Android. Этот параметр по какой-то причине игнорируется, поэтому символы хинди на основе UTF-8 не будут отображаться. Чтобы исправить это, вы можете использовать один из следующих вариантов.

webview1.loadData(hindi_content, "text/html; charset=UTF-8", null);


webview1.loadDataWithBaseURL(null, hindi_content, "text/html", "utf-8", null);

это дубликат ответ:

Вам также нужно будет отменить эти последовательности и сделать это, ссылаясь на как Unescape Unicode в Java

рендеринг UTF-8 в WebView с использованием loadData был сломан в той или иной форме или способом навсегда. проблема 1733

используйте loadDataWithBaseURL вместо loadData.

// Pretend this is an html document with those three characters
String scandinavianCharacters = "øæå";

// Won't render correctly
webView.loadData(scandinavianCharacters, "text/html", "UTF-8");

// Will render correctly
webView.loadDataWithBaseURL(null, scandinavianCharacters, "text/html", "UTF-8", null);

теперь часть, которая действительно раздражает, это то, что на Samsung Galaxy S II (4.0.3) loadData () работает отлично, но тестирование на Galaxy Nexus (4.0.2) многобайтовые символы искажаются, если вы не используете loadDataWithBaseURL (). Документация WebView


вам нужно будет использовать шрифт для поддержки хинди (язык хинди еще не полностью поддерживается android) создать одноэлементный экземпляр шрифт и вызвать createFromAsset(); и добавьте его в WebSettings, как это

WebSettings webSettings = webView.getSettings();
webSettings.setFixedFontFamily(InstaceOFTypeFace);

наконец, я придумал решение загрузки хинди-контента в webview.

Я просто изменил строку загрузки, и, к сожалению, она будет работать.

webview.loadData(Hindi_css, "text/html; charset=UTF-8", null);

спасибо всем за ваши усилия. :)


вы также можете использовать этот.

String uri= Uri.encode(html file/url);
  webView.loadUrl(uri);

может быть это поможет вам.