android 使用getContentResolver().query 返回音乐文件的时候,如果是中文名称就会显示乱码;private void initMusics(){
String[] musicInfo = new String[]{MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA};
Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
musicInfo, null, null, null);
if(cur != null){
while(cur.moveToNext()){
Music m = new Music();
m.setTitle(cur.getString(0));
m.setDuration(cur.getString(1));
m.setArtist(cur.getString(2));
m.setId(cur.getString(3));
m.setPath(cur.getString(4));
System.out.println("Music infor--->" + m);
musicList.add(m);
}
}
}
在使用 System.out.println("Music infor--->" + m); 追踪打印的时候 就出现乱码;
在模拟器上也是显示乱码
这个是在读取 音乐文件的title的时候出现的乱码。各位大侠有没转换解码的好办法。。让歌曲名在模拟器上显示正常,我看过其他的音乐播放器,在模拟器上是可以显示正常的中文歌曲名字的,但不知道怎么做到的。大家知道的讲讲。。
String[] musicInfo = new String[]{MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA};
Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
musicInfo, null, null, null);
if(cur != null){
while(cur.moveToNext()){
Music m = new Music();
m.setTitle(cur.getString(0));
m.setDuration(cur.getString(1));
m.setArtist(cur.getString(2));
m.setId(cur.getString(3));
m.setPath(cur.getString(4));
System.out.println("Music infor--->" + m);
musicList.add(m);
}
}
}
在使用 System.out.println("Music infor--->" + m); 追踪打印的时候 就出现乱码;
在模拟器上也是显示乱码
这个是在读取 音乐文件的title的时候出现的乱码。各位大侠有没转换解码的好办法。。让歌曲名在模拟器上显示正常,我看过其他的音乐播放器,在模拟器上是可以显示正常的中文歌曲名字的,但不知道怎么做到的。大家知道的讲讲。。
解决方案 »
- 请问ksoap2-android中有没有ServiceConnectionMidp这个类?
- 关于JNI jclass jclass = env->GetObjectClass(Point);报错的问题!
- monkeyrunner drag 问题
- movie 播放gif动画时出现花屏问题,如何解决
- Android界面刷新异常要怎么解决?
- 怎么样读取data\misc\wifi\wpa_supplicant.conf这个无线密码文件
- 关于手机喇叭音效
- 真心求解一个android问题,卡在那很久了。
- Android模拟PC发送请求(不被服务器识别到)
- 请问关于listview显示的问题
- android怎么下载文件?
- ListView 显示问题
musicInfo, null, null, null);你从数据库中去找,我怀疑数据库存的时候你就存进去的是乱码!
String titleTemp = cur.getString(0);
titleTemp = new String(titleTemp.getBytes("ISO-8859-1"),"GBK");
用这个来转换就可以了