在WebViewAndroid中设置字符

如何解决在WebViewAndroid中设置字符

| 我正在尝试使用loadData()方法在WebView中显示Java字符串中的一些数据:
wv.loadData(myString,\"text/html,\"utf-8\");
我遇到的问题是WebView会破坏非ASCII(我假设吗?)字符的输出。如果我使用TextView而不是WebView,则不会发生此问题,并且文本可以正确显示(尽管涉及一些HTML标记,因此最终不希望使用TextView)。 如果有帮助,当我运行以下代码时:
for(int i = 0; i < myString.length() && i < 400; i++)
      Log.i(\"Text\",myString.charAt(i) + \": \" + (int) myString.charAt(i));
冒犯性的字符将在日志中显示为: 05-27 13:15:45.110:INFO / Text(606):â:8217 我认为这是一个字符集问题,但是我不太确定如何解决它。 这是HTML的摘要(我不确定我的雇主是否允许内容的完整发布): 突尼斯总理 造成问题的是“字符”。注意:我要显示的不是完整的HTML页面。如果有问题,则只是带有HTML标记的文本。     

解决方法

        我有一个类似的问题,我传递给loadData()方法的字符串未在WebView中正确显示(使用奇数字符而不是正确的DBCS字符)。在我的情况下,字符串已以UTF-8正确编码,问题出在loadData()如何使用字符串上。 我发现这对于在mime类型参数中指定字符集(而不是在编码参数中)很重要。具体来说,通话必须是
wv.loadData(myString,\"text/html; charset=utf-8\",encoding);
就我而言,我将null用作编码变量,它可以正常工作(Android 4.2.1)。阅读关于loadData()的API文档;它似乎表明它将接受\“ base64 \”,而所有其他值将导致data参数被视为URL编码的ASCII。 因此,您不能使用encoding参数设置字符串的编码,必须在mime类型中指定编码。     ,        尝试:
wv.loadData(URLEncoder.encode(myString).replace(\"+\",\"%20\"),\"text/html,\"utf-8\");
或者,如果这样不起作用:
wv.loadData(myString,\"ISO-8859-1\");
或两者结合。其中之一通常对我有用。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?