3

jid3lib を使用してアプリケーションを作成しようとしていますが、id3v1 の読み取り/書き込みに関してほとんどすべてが機能していますが、v2 ユニコードの場合、ユニコードを使用可能な文字列に変換してから再エンコードするための最善の方法がわかりません。フレームに書き戻します。

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