RhythmboxでSJISのmp3ファイルを扱う
http://fedorakenken.at-ninja.jp/node39.html
mp3ファイルのID3タグ
Windowsでは基本的にSJIS
Linuxでは基本的にUTF-8
RhythmboxでもUTF-8しか扱えない。
無理やりSJISの文字化けを解消しようと言う試み。
やってることはRhythmboxのデータベース(xmlファイル)を書き換えてるだけ。
cd ~/.gnome2/rhythmbox/ gvim convert_rhythmdb.pl
以下convert_rhythmdb.plの中身
(なんかすごく纏められそうだけど面倒だから放置)
適当に縮めてみた。(2009/01/05)
#! /usr/bin/perl use Encode; while (<>) { if (/<artist>/ || /title/ || /genre/ || /album/) { # Shift_JISの文字参照をバイナリに戻す s/\&\#x([0-9A-Fa-f]{2});/pack 'C', hex($1)/ge; # UTF-8に変換 $artist_utf = decode('Shift_JIS', $_); print $artist_utf; } #他の行は変換せずに表示 else { print; } }
ついでにこっちも作る
gvim convert.sh
以下convert.shファイルの中身
(一応バックアップはとっとこう。)
cp rhythmdb.xml rhythmdb.xml.org ./convert_rhythmdb.pl < rhythmdb.xml.org > rhythmdb.xml
前準備はここまで
・Rhythmboxにファイルを追加する(この時点では文字化けしてる)
・Rhythmboxを終了
・convert.shを実行([Wide character in print...]とかいうエラー(warning?)が出るがスルー)
・Rhythmboxを起動
で文字化けが直ってる。
ファイルを追加する度にこの作業をする。
少し面倒だけどそう頻繁にすることじゃないからよしとしよう。