2007-02-07 北方領土の日 [長年日記]
λ. 『美しい国へ』 安部晋三
を読んだ。 案外良かったし、安倍首相の「こうしたい」という気持ちはわかる感じ。
読んでいて良くわからなかったのは天皇の国事行為に関する p.105-106 の以下の記述。「天皇に規定されているわけではない」というのは……
各国大使は、日本に赴任すると、皇居で行われる信任状棒呈式に臨む。東京駅もしくはホテルから、宮内庁差し回しの自動車か、馬車で参内するのだが、大抵の大使が馬車を選ぶそうである。棒呈式では、天皇が信任状を受け取られ、さらに外務大臣に授けられる。このときをもって大使が着任したとみなされるのである。
奥ゆかしい行事だが、法的裏付けは、憲法第七条九項の《外国の大使を接受すること》であり、天皇に規定されているわけではない。信任状を受け取るのは総理大臣でもよかったが、天皇の役割としたのは、占領下の吉田茂総理の英断だったといわれる。
あと、「年金は実はお得」という話については、割引率を考えず、異時点間の金額を単純に比較してるため、説得力に欠ける。
λ. ID3タグをCP1251から変換
пропагандаのオフィシャルサイトからMP3ファイルをダウンロードしてきたのだけど、ID3タグがCP1251で書かれていたらしく、iTunesのライブラリに追加したら文字化けしてしまった。仕方ないので簡単なスクリプトで直してみた。
iTunesからデータを取得する際に、CP1251の文字列をCP932(≒SHIFT_JIS)として扱ってUnicodeとの間で一度変換してることになるので、本当は何かまずい気がするが、動いているのでとりあえず気にしないことにする。
require 'win32ole' require 'iconv' def conv(track, key) WIN32OLE.codepage = WIN32OLE::CP_ACP s = track[key] s = Iconv.conv('utf-8', 'cp1251', s) WIN32OLE.codepage = WIN32OLE::CP_UTF8 track[key] = s end itunes = WIN32OLE.new('iTunes.Application') itunes.selectedTracks.each{|track| begin ['Artist', 'Album', 'Name'].each{|key| conv(track, key) } rescue => e puts e.inspect end }
【追記】 やはり、まずかった。 CP932として正しくないバイト列があった場合には変換がうまくいっていなかった。データをWIN32OLEを使ってiTunesから取得するのではなく、MP3ファイルのID3タグから直接読まないとまずいか。 id3libをラップした拡張ライブラリが幾つかあるのでそれを使おうと思ったが、cygwin版のrubyだとrequireした瞬間にrubyが落ちるっぽい。
仕方ないのでID3iconvというツールでMP3ファイルを直接変換した。 「java -jar ID3iconv-0.2.1.jar -e CP1251 *.mp3」などとする。 他には ID3Uni というのもあるようだ。