使用Java中的mp3agic读取unicode标签的Gibberish结果

时间:2013-06-05 13:29:58

标签: java mp3 id3-tag

我正在尝试使用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СкользкиеУлицы”。 我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分: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