有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

读取ID3标记时发生java字符集错误

我正在尝试使用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Öyster Cult”,我会得到类似于”��B l u e� y s t e r C u l t”

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

[编辑]

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

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


共 (1) 个答案

  1. # 1 楼答案

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