3

我正在尝试使用 jid3lib 编写一个应用程序,并且在读/写 id3v1 方面几乎所有东西都可以工作,但是对于 v2 unicode,我无法找出将 unicode 转换为可用字符串然后重新编码的最佳操作过程写回框架。

我找到了 CharsetDecoder 和 CharsetEncoder 但它们似乎没有改变任何东西。

MP3File mp3file = new MP3File(f);
AbstractID3v2 tag = mp3file.getID3v2Tag();
String title = tag.getSongTitle();
System.out.println("Title : " + convertCharset(title));

其中 convertCharset 是:

private static String convertCharset(String text) {
    Charset charset = Charset.forName("ISO-8859-1");
    CharsetDecoder decoder = charset.newDecoder();
    CharsetEncoder encoder = charset.newEncoder();
    try {
        ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(text));
        CharBuffer cbuf = decoder.decode(bbuf);
        return cbuf.toString();
    } catch (CharacterCodingException e) {
        e.printStackTrace();
    }
    return null;
}

输出如下:http: //i.stack.imgur.com/RLbKe.png

非常感谢您的帮助。

4

0 回答 0