2008年12月21日

mt-daapd のログに吐き出される曲名を UTF-8 に戻すプログラム

mt-daapd (firefly) のログに吐き出される曲名は非ASCII文字が \M-x とか \M^x に変換されてしまうので、それを元 (UTF-8) に戻すフィルタプログラムをちょいちょいと書いてみました。
#include <stdio.h>
#include <stdlib.h>

int main()
{
unsigned int c, c2, c3, c4;

while( (c=getchar()) != EOF) {
if (c == '\\') {
if ((c2=getchar()) == EOF) { break; }
if ((c3=getchar()) == EOF) { break; }
if ((c4=getchar()) == EOF) { break; }
if (c2 == 'M' && c3 == '-') {
printf("%c", c4+128);
} else if (c2 == 'M' && c3 == '^') {
printf("%c", c4+64);
} else if (c2 == '2' && c3 == '4' && c4 == '0') {
printf("%c", ' '+128);
} else {
printf("%c%c%c%c", c, c2, c3, c4);
}
} else {
putchar(c);
}
}

exit(0);
}
このソースをコンパイルして、
cat ログファイル | このプログラム | UTF-8を表示できるページャ
とすれば OK のはず。

でもイマドキの人はこんなプログラム、Perl かなんかで書くんでしょうね (^^;;;
posted by yamaga at 21:00| Comment(0) | TrackBack(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック