Android WebView UTF-8 ne montre pas
J'ai une webview et suis en train de charger simple UTF-8 du texte.
mWebView.loadData("將賦予他們的傳教工作標示為", "text/html", "UTF-8");
Mais la WebView affiche ANSI/ASCII ordures.
De toute évidence d'un problème de codage, mais ce qui me manque, en disant à la webview pour afficher le texte au format Unicode?
C'est une application HelloWorld.
- Solution: Utiliser l'autre méthode sur WebView --> mWebView.loadDataWithBaseURL(null, "將賦予他們的傳教工作標示為", "text/html", "UTF-8", "about:blank");
Vous devez vous connecter pour publier un commentaire.
Utilisation:
ou à l'aide de WebSettings avec setDefaultTextEncoding:
Pour les versions récentes d'Android, l'API de 16 à 22 ans, il a été testé et fonctionne correctement à l'aide de méthode loadData (), nécessite le type mime à comprendre: "charset=utf-8".
ou
loadData
pré-Nid d'abeille, mais il ne fonctionne pas sur le Nid d'abeille. J'ai fait le changement comme ci-dessus pour en Nid d'abeille et il s'affiche désormais correctement.Ce problème remonte à moins de pain d'épice
Cela semble avoir été cassé dans une certaine forme ou de la mode pour toujours.
Question 1733
Utilisation loadDataWithBaseURL au lieu de loadData
Maintenant la partie qui est vraiment gênant, c'est que sur le Samsung Galaxy S II (4.0.3) loadData() fonctionne très bien, mais le test sur le Galaxy Nexus (4.0.2) les caractères multi-octets sont incompréhensibles, sauf si vous utilisez loadDataWithBaseURL(). WebView Documentation
Les versions récentes d'Android
Certains font état d'un changement dans le comportement de l'loadData appels nécessitant l'
mimeType
inclurecharset=utf-8
.Discussion
La première fois que j'ai vu ce que mon patron m'a apporté son téléphone, l'un des premiers Nexus, alors que j'étais en développement à l'époque sur un Samsung Galaxy II et il a montré dans notre flux d'actualités sur son téléphone qui a eu beaucoup de caractères non-ASCII. Donc, ce n'est pas seulement une question de longue date au sein d'Android, mais il n'est pas cohérente entre les fabricants d'appareils. C'est une question où vous avez le programme, sur la défensive.