0

Java ID3Tag Libraryを使用して、mp3 ファイルから ID3 タグを取得しようとしています。しかし、特殊文字 (çáêü...) を含む文字列を取得するときにエラーが発生します。したがって、これらの文字列をバイト配列に変換しました。

ID3v2_4 tag=(ID3v2_4) mp3file.getID3v2Tag();
byte [] artBytes=tag.getLeadArtist().getBytes();
for (int i=0;i<artBytes.length;i++){
   System.out.println(artBytes[i]);
}

そして、すべての「不明な」文字 (および文字列の最初のバイト) が 3 バイト シーケンス -17 -65 -67 (文字列内の「�」) として読み取られていることがわかりました。各文字の後にバイト 0 があります。したがって、「Blue Öyster Cult」を読みたい場合は、「��B lue � yster C ul t」のようなものが得られます。

これらの文字列を正規化するにはどうすればよいですか?

[編集]

  • 特殊文字を含むいくつかの mp3 ファイルが正しく表示されます。

  • US_ASCII や ISO_8859_1 などの文字セットから読み取ると、文字 � がバイト 63 として表示されます。

4

1 に答える 1