读取 ID3 标签时出现字符集错误



我正在尝试使用 Java ID3Tag 库从 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。所以,如果我想读"蓝色奥伊斯特邪教",我会得到类似"B l u e y s t e r C u l t"的东西。

如何规范化这些字符串?

[编辑]

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

  • 从 US_ASCII 或 ISO_8859_1 等字符集读取将导致字符显示为字节 63。

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

最新更新