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

У меня была база данных, в которой данные, хранящиеся на хинди как \u092e\u0948\u0902 \u0924\, и установка этого содержимого в веб-просмотр, используя ниже.

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

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

hindi content display as

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

Ответ 1

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

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


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

Ответ 2

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

Вам также нужно будет отменить эти последовательности и сделать это со ссылкой на Как 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

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

Возможно, это поможет вам.