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

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

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

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

Отображение содержимого хинди как

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

Solutions Collecting From Web of "Символ хинди не будет отображаться в веб-представлении правильно"

Это происходит из-за ошибки с параметром кодировки 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

Вам нужно будет использовать шрифт для поддержки хинди (язык хинди еще не полностью поддерживается андроидом) создать экземпляр Singleton Typeface и вызвать 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); 

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