当我在网络浏览器中显示子弹点,版权符号,商标标志时 看起来很好。
// 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-by-1?
答案 0 :(得分:2)
尝试使用WebView设置
myWebView = (WebView)findViewById(R.id.mywebView);
WebSettings settings = myWebView.getSettings();
settings.setDefaultTextEncodingName("UTF-8");
答案 1 :(得分:1)
我以前遇到过这个问题。在将其加载到WebView之前,我会确保您的myHtml String已经具有良好的编码。您可以使用Log.d()记录它来检查它。如果该String中的编码错误,则它也无法在WebView中正确显示。你会在LogCat中看到那些奇怪的角色。
如果是这种情况,您需要确保在将数据读入myHtml字符串时,使用类似InputStreamReader的内容并将其作为字符编码传递给“UTF-8”。 / p>
我会更改您正在使用的代码行:
BufferedReader buffer = new BufferedReader(new InputStreamReader(content), 1000);
为:
BufferedReader buffer = new BufferedReader(new InputStreamReader(content, "UTF-8"), 1000);
此版本的构造函数记录为:
在InputStream中构造一个新的InputStreamReader。用于将字节解码为字符的字符转换器按名称按enc标识。如果找不到编码,则抛出UnsupportedEncodingException错误。
在http://developer.android.com/reference/java/io/InputStreamReader.html,看看第二个。
编辑:如果这不起作用,您可以尝试使用:
String s = EntityUtils.toString(entity, HTTP.UTF_8);