WebView.loadData () ठीक से काम नहीं कर रहा है। मुझे क्या करना था:
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
myWebView.loadData(header+myHtmlString, "text/html", "UTF-8");
मुझे लगता है कि आपके मामले में आपको UT1-8 को LT1 या ISO-8859-1 दोनों हेडर और WebView.loadData () में बदलना चाहिए।
और, एक पूर्ण उत्तर देने के लिए, यहाँ एनकोडिंग की आधिकारिक सूची है: http://www.iana.org/assignments/character-sets
मैं अपने उत्तर को अधिक समावेशी होने के लिए अद्यतन करता हूं:
WebView.loadData () का उपयोग करने के लिए गैर लैटिन 1 एनकोडिंग के साथ आपको 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);
}
लेकिन बाद में मैंने WebView.loadDataWithBaseURL () पर स्विच कर दिया और कोड बहुत साफ हो गया और Android संस्करण के आधार पर नहीं:
WebSettings settings = myWebView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
myWebView.loadDataWithBaseURL(null, htmlString, "text/html", "utf-8", null);
किसी कारण से इन कार्यों का पूरी तरह से अलग कार्यान्वयन है।