获取歌名时,进行转码就好了

解决方案 »

  1.   

    你是通过MediaStore.Audio.Media.TITLE获取SD上的歌曲的名称吗?
     String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
    如果是用以上方法的话,获取到后,再用以下函数ISO_GBK处理一下,
     String title = ISO_GBK(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)));
    ISO_GBK代码如下:    public String ISO_GBK(String strA)
        {
         String strB = strA.replace("?", "");
    try {
    strB = new String (strA.getBytes("ISO-8859-1"),"GBK");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
         byte tempNum;
         int isIso = 0;
         char[] chars=strB.toCharArray();
         int charsLength = chars.length;
         for (int j = 0; j < charsLength; j++)
         {
         tempNum = (byte) chars[j];
         if (tempNum == 26 || tempNum == 63)
         {
         if((int)chars[j] > 0 && (int)chars[j] < 256)
         {
         isIso = 1;
             break;
         }
         }
         }
         if (isIso != 0) return strA;
         return strB;
        }
      

  2.   


    楼上的我不太同意,我上次做的音乐播放器的项目没有转码,也没有出现乱码的情况。