繁体   English   中英

Android WebView无法显示版权或商标符号?

[英]Android WebView can't show copyright or trademark symbols?

当我在网络浏览器中显示项目符号,版权符号,商标标志时,它们看起来不错。

// bullets: http://losangeles.craigslist.org/wst/acc/2900906683.html
// bullets: http://losangeles.craigslist.org/lac/acc/2902059059.html
// bullets: http://indianapolis.craigslist.org/acc/2867115357.html
// bullets: http://indianapolis.craigslist.org/ofc/2885697780.html
// bullets: http://indianapolis.craigslist.org/ofc/2887554512.html
// copyright: http://chicago.craigslist.org/nwc/acc/2854640931.html

但是,当我将Android WebView与以下代码一起使用时,会出现“三角形内的问号”:

web.loadDataWithBaseURL(null, myHtml, null, "UTF-8", null);

我应该使用其他编码吗?

我应该自己搜索/替换某些字符吗... 1比1?

尝试使用WebView设置

myWebView = (WebView)findViewById(R.id.mywebView);
WebSettings settings = myWebView.getSettings();
settings.setDefaultTextEncodingName("UTF-8");

我以前遇到过这个问题。 我将确保在将myHtml字符串加载到WebView之前,它已经具有良好的编码。 您可以使用Log.d()将其记录下来进行检查。 如果该String中的编码错误,那么它也不会在WebView中正确显示。 您会在LogCat中看到那些奇怪的字符。

如果真是这样,您将需要确保在将数据读取到myHtml字符串中时,使用类似InputStreamReader的名称并将其传递为“ UTF-8”作为字符编码。

我将从以下位置更改您正在使用的代码行:

BufferedReader buffer = new BufferedReader(new InputStreamReader(content), 1000);

至:

BufferedReader buffer = new BufferedReader(new InputStreamReader(content, "UTF-8"), 1000);

此版本的构造函数记录为:

在InputStream in上构造一个新的InputStreamReader。用于将字节解码为字符的字符转换器由enc按名称标识。 如果找不到编码,则会引发UnsupportedEncodingException错误。

请访问http://developer.android.com/reference/java/io/InputStreamReader.html,然后看看第二个。

编辑:如果不起作用,您可以尝试使用:

String s = EntityUtils.toString(entity, HTTP.UTF_8);

这是从Android Java UTF-8 HttpClient问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM