やっとID3v2タグの変換問題解消

Windowsで作成したmp3ファイルをMacやW880iにもっていくと文字化けすることが多いです。Macや海外端末であるW880iは、Windowsで広く使われているShift-Jisを扱えないからです。詳細をすっとばして結論だけ言うと、タグをID3v2.3に、エンコードUnicode(UTF-16)にするとよいそうです。大量にあるmp3ファイルを変換するにはWindowsではSuper Tag Editor Plusが定番です。ところが・・・これだけ情報がそろっているにも拘わらず、わたしは文字化けを解消できていませんでした。MacではTune-up iTunesのお世話になりっぱなしで、W880iではそのようなパッチもないので、化けっぱなしでした。
このような状況だったのですが、昨日やっと解決できました。原因はわたしの不注意。気が付いてなかったのですが、そもそもSuper Tag Editorで変換できていませんでした。一時期はID3v2の仕様を調べて、バイナリエディタで調査してみようかとまで考えていたのですが、画面をず〜っと右側にスクロールさせると、タグの種類、バージョンやエンコード種別のカラムがあるじゃないですか。そのカラムを見ると、文字化けしているファイルはUTF-16になっていませんでした。何度タグ変換をおこなっても、びくともしません。どうやら、Super Tag Editor Plusの変換機能には制限があって、直接ID3v2.3 UTF-16に変換できないファイルがあるそうです。ほぼ確実に変換するには、ID3v2のバージョンを2.4に、エンコードUTF-16にしてから、ID3v2のバージョンを2.3に戻すとよいそうです。*1
さらに言うとID3v2以外のタグがついていたかもしれないファイルは、一度Windowsの機能でRIFFタグに変換してから、再度ID3v2に変換する手順を踏むとよいそうです。これはID3とRIFFは共存できない規格であることに起因します。この二種のタグは識別情報を書き込む領域がファイル上の同じ位置に存在するため、読み込むアプリ側では二者択一の判断をするしかありません。ところがタグのペイロードといえる情報を保持する位置が、二種のタグで別々になっています。よって、そのペイロード部分だけは一つのファイルに共存できてしまいます。このため、タグの種別を変換する際には、タグの識別情報とその内容を書き込むだけだと、もとのタグの内容が、読み込むアプリ(つまり大抵の場合プレイヤーな訳ですが)では認識されない、でっかいゴミ領域になって残ってしまいます。こういうことをするのは作法の悪いアプリだと思うのですが・・・・これをきれいにするには、正しい作法のタグエディターで、一回ID3かRIFFの、どちらか別のタグに変換するとよいのだそうです。ただし、未確認なのですがあるバージョンのSuper Tag Editorで変換をおこなうと、再生または終了時にノイズの乗ったファイルになってしまうのだとか。このため、タグの形式変換は別のアプリでおこなう方がよいらしいです。わたし自身はこの操作をしていないので未確認(未体験というか身をもって実証していない)ですが。

以下、参考にしたサイト

*1:ID3v2.4のままだと、W880iではタグの内容が途中で切れるファイルが多数でてきました