ওয়েবভিউ.লোডডাটা () মোটেও ঠিক মতো কাজ করছে না। আমার যা করতে হবে তা হ'ল:
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
myWebView.loadData(header+myHtmlString, "text/html", "UTF-8");
আমি মনে করি আপনার ক্ষেত্রে আপনার ইউটিএফ -8টি লাটিন 1 বা আইএসও -8859-1 এর সাথে শিরোনাম এবং ওয়েবভিউ.লোডডেটা () উভয়ই প্রতিস্থাপন করা উচিত।
এবং, একটি পূর্ণ উত্তর দেওয়ার জন্য, এখানে এনকোডিংগুলির আনুষ্ঠানিক তালিকা দেওয়া হল: http://www.iana.org/assignments/character-sets
আমি আমার উত্তরটি আরও অন্তর্ভুক্ত করার জন্য আপডেট করছি:
ব্যবহার করার জন্য WebView.loadData () অ latin1 এনকোডিং সঙ্কেতাক্ষরে লিখা HTML সামগ্রী আপনার সঙ্গে। পূর্ববর্তী উদাহরণটি অ্যান্ড্রয়েড 4+ এ সঠিকভাবে কাজ করছে না, তাই আমি নীচের মত দেখতে এটি পরিবর্তন করেছি:
WebSettings settings = myWebView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
String base64 = Base64.encodeToString(htmlString.getBytes(), Base64.DEFAULT);
myWebView.loadData(base64, "text/html; charset=utf-8", "base64");
} else {
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
myWebView.loadData(header + htmlString, "text/html; charset=UTF-8", null);
}
তবে পরে আমি ওয়েবভিউ.ডাউনড ডেটাওয়াইথব্যাস URL () এ স্যুইচ করেছি এবং কোডটি খুব পরিষ্কার হয়ে গেছে এবং অ্যান্ড্রয়েড সংস্করণের উপর নির্ভর করে নয়:
WebSettings settings = myWebView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
myWebView.loadDataWithBaseURL(null, htmlString, "text/html", "utf-8", null);
কিছু কারণে এই ফাংশনগুলির সম্পূর্ণ আলাদা বাস্তবায়ন রয়েছে।