我正在尝试使用 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
非常感谢您的帮助。