Символ хинди не будет отображаться в веб-представлении правильно
У меня была база данных, в которой данные, хранящиеся на хинди как \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);
Возможно, это поможет вам.