我从utf8数据库中读取数据,然后在列表视图中显示它。 但是当我在浏览器中手动获取xml时,数据库中有单词包含èéàá字母,它显示完美
但在列表视图中显示的是问号
如何为我的listview设置字符集为utf8? 还是有另一种方式?
答案 0 :(得分:3)
这真的很奇怪,因为Android适用于UTF-8 ...在我的情况下,我使用的是UTF-8编码资源(意大利语,德语,俄语,中文),文件等等 - 一切正常。
为什么法语重音字符显示为“?”有3个选项标志:
Charset
答案 1 :(得分:1)
您应该仔细检查计算机上的文件编码。你的系统使用latin-1(iso-8859-1)还是utf-8?
在一个latin-1编码文件中,口音很好看,在utf-8中声明了一个xmlns,但实际上并没有真正存储在utf-8中。
拜, 斯特凡
答案 2 :(得分:1)
我有同样的问题。确保您没有使用StringBufferInputStream(不推荐使用)。该方法会导致此问题。
答案 3 :(得分:0)
我曾经遇到过这个问题。
您应该完全删除数据库。我很确定你现在用iconv和sqlite中的pragma为你的数据做了正确的事情。所以问题是你的包中的数据库是旧版本。所以在eclipse中清理项目,通过在卸载前删除数据库,从android完全卸载你的应用程序,更改sqlite安装程序版本代码(DatabaseHelper)并重新启动。
希望它有所帮助, 斯特凡
答案 4 :(得分:0)
使用
<强> Html.fromHtml(字符串)强>
正确显示文字。
答案 5 :(得分:0)
让响应成为从服务器返回的对象。做啰嗦:
response = Utilities.encodedToUTF8(response);
public static String encodedToUTF8(String response) {
try {
response = new String(response.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
Log.e(TAG, "Error: " + e.getMessage());
}
return response;
}
答案 6 :(得分:0)
由于我正在开发使用外语单词(包括法语)的应用程序,因此我将分享对我有用的内容。在我的应用程序中,每个带有特殊重音的字符都显示为带有白色问号的黑色菱形。我在笔记本电脑上有数据库的副本,主要使用Excel将数据加载到其中(我创建CSV文件,然后通过DB Browser for SQLite
导入)。在我的CSV文件中,我可以正确看到所有的重音符号,但是将它们导入数据库后,到处都是黑菱形。我尝试使用Html.fromHtml等进行编码,解码,这对我唯一有用的是手动复制带有特殊字符的单词并将其粘贴到数据库中(使用程序)。这项工作没有任何问题,现在我的数据库中没有黑钻石。唯一的问题-由于这是一项手动工作,因此需要时间,而且要花费很多时间。