2 usniyo usniyo 于 2013.01.17 13:25 提问

android读取手机联系人并在textview中显示名字时中文乱码怎么解决?

android读取手机联系人并在textview中显示名字时中文乱码怎么解决?从数据库里来的中文的全变成"?"了,其他的正常。

2个回答

usniyo
usniyo   2013.02.20 12:31
已采纳
new String(lCursor.getBlob(indexName), "UTF-8").replace("\0", "").replace("\r", "");
Eiseno
Eiseno   2013.01.17 14:33
  1. 数据库连接以后,先执行一下“set names 'utf8';”或者gb2312
  2. 替换读取出来内容的“\r”。如str.replace("\r", "");
  3. java源文件编码不正确。通常情况是要修改一下源文件的编码。识别方法:在源文件点右键,properties,找到Resource,在右侧找Text file encoding,选择另一个,如果正常了,说明文件编码与工程编码不一致,需要使用其他软件修改编码格式,如notepad++、UltreEdit32
Eiseno
Eiseno 查询的数据要和你显示需要的编码匹配
大约 5 年之前 回复
usniyo
usniyo 感谢您的回答!但是在android中,联系人查询是使用内容提供器向外提供一些接口以实现信息共享的,它所提供的接口有限,除了查询、更新、删除联系人信息我无法做其他的操作。因此我无法查询它是用什么样的字符集,虽然sqlite默认是使用utf-8,但我读出的信息确实是乱码了,不知何故。另,出现这种情况只是出现在某些机子上。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!