读取ID3标签时出现Charset错误

时间:2015-02-19 23:58:56

标签: java string mp3 id3 id3v2

我正在尝试使用Java ID3Tag Library从mp3文件中检索ID3标签。但是在检索带有特殊字符的字符串时会出现一些错误(çáêü...)。所以我把这些字符串转换为字节数组:

ID3v2_4 tag=(ID3v2_4) mp3file.getID3v2Tag();
byte [] artBytes=tag.getLeadArtist().getBytes();
for (int i=0;i<artBytes.length;i++){
   System.out.println(artBytes[i]);
}

然后我发现每个“未知”字符(以及字符串中的第一个字节)都被读作三字节序列-17 -65 -67(字符串中的“ ”)。此外,在每个字母后面都有一个字节0.因此,如果我想阅读“BlueÖysterCult”,我会得到类似“ Bl u e t C”“的内容。

我可以做些什么来规范化这些字符串?

[编辑]

  • 正确显示一些带有特殊字符的mp3文件。

  • 从US_ASCII或ISO_8859_1这样的字符集中读取将导致字符显示为字节63。

1 个答案:

答案 0 :(得分:0)

正如immibis所说,它可能是图书馆中的一个错误。我最终使用了mp3agic库,一切正常。