0

我正在尝试使用 mp3agic 在 Java 中读取俄罗斯歌曲的标签:

Mp3File song;
try {
    song = new Mp3File(newURI);
    if (song.hasId3v2Tag()) {
        ID3v2 id3v2tag  = song.getId3v2Tag();
        title   = id3v2tag.getTitle();
        artist  = id3v2tag.getArtist();
    }
    else if (song.hasId3v1Tag()){
        ID3v1 id3v1tag  = song.getId3v1Tag();
        title   = id3v1tag.getTitle();
        artist  = id3v1tag.getArtist();
    }
}

但是我得到这个“??-2????????????????” 而不是这个“Би-2Скользкие Улицы”。我可以做些什么来解决这个问题?

4

1 回答 1

1

可以在以下位置找到对此问题的解释:https ://github.com/mpatric/mp3agic/issues/39

综上所述,问题在于文本编码是windows-1251(也称为cp1251)。带有 windows-1251 编码字符串的 ID3v2 标记(或不属于 ID3v2 的 4 种支持编码之一的任何其他编码)无效。以编程方式将 windows-1251 与 iso-8859-1 区分开来并不容易,因此自动检测字符串以对其进行转码可能会很棘手。

这里有一些有趣的评论:https ://superuser.com/questions/495775/how-to-translate-wacky-metadata-to-readable-format

于 2013-11-15T11:44:45.977 回答