可能是GBK编码的问题吧
关注

解决方案 »

  1.   

    呵呵,谷歌不考虑这些问题的,你说的乱码应该是id3的问题,底层的c++代码貌似没有解决unicode问题
      

  2.   

    首先搞清楚乱码产生的原因,我觉得就是媒体库在扫描卡上的多媒体数据的时候,文件名和入境都不一定是UNICODE编码,取决于你的文件名是什么编码,所以放在数据库中就有可能是乱码。这样显示字符串的时候加一个小小的转换函数即可。
      

  3.   

    android donut版本是1.6版本?
      

  4.   


    怎么跟unicode扯上关系啦确实是ID3的问题ID3分两种,ID3v1 和 ID3v2, 一个在头部一个在尾部我们在网上下的音乐多是使用ID3V1,这种标准本来不支持中文,我们为了让它支持中文,就用GBK或GB2312写里面的信息,这样标准的ID3库是解不出来的,所以就乱码。现在PC上的国产播放器多是读取ID3V1格式的TAG时会判断它的编码,所以没问题。ID3V2采用的是UTF8编码,默认支持中文,但网上下的音乐很少有这个TAG。不知道我说的对不对,欢迎补充.......
      

  5.   

    建议用GOOGLE搜搜:Linux MP3乱码 id3这些关键字
      

  6.   

    jinlking说的函数 我有,但是不能给你
    你照jinlking的思路做吧:从cursor中拿到string以后 分析这个string到底是什么样的编码
    另外你要知道各种编码方式的区别,比如一个汉字在GBK中可能占两个字节,在UTF-8里却
    要占三个字节,有规律的,你自己分析
      

  7.   

    我问题我碰到过,如果你用UTF-8显示中文就会这样,你转成GB2312就正常显示了
      

  8.   

    1: 如果你是直接将文件拷贝到SD卡的,然后你的location选择的是Chinese(China)的话是不会出现乱码的,我用的是MOTO, Milestone港行,全英文的,装了一个区域程序,放中文歌曲没有任何问题.
    2: 如果使用adb push命令传送的中文文件名,肯定出问题,不用说.但是内容不出问题,我传的文本文件的内容就没有乱,太奇怪了.
    3: 如果在模拟器上,要上传中文的文件名,可以考虑使用镜像编辑软件,如UltraISO,打开sdcard.img镜像文件,写入你要上传的文件,重启模拟器,一切搞定.