我正在尝试使用 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库,一切正常。