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を起動
で文字化けが直ってる。
ファイルを追加する度にこの作業をする。
少し面倒だけどそう頻繁にすることじゃないからよしとしよう。