flashのログをtailした時の文字化けを解決してみる
Debug PlayerのTrace出力はFlashの文字コードに従うけど、警告の出力はsjisで出力されてしまう。
ターミナルはutf8表示にしてあるので、ログをtailで眺めていると行毎に文字コードが変わって大変なことに。
かといって、ターミナルをsjis表示にしたら
そこで、文字コードを判別してutf8に変換する1linerなPerlを途中にかまして奇麗にしてみる。
trace実行用のshを作成
#!/bin/sh # 起動時はとりあえずlogの初期化 >~/Library/Preferences/Macromedia/Flash\ player/Logs/flashlog.txt # なんとなくわかりやすいように表示 echo "== Flash Trace Mode ==" # Tail+Perlでutf8じゃなければ変換する tail -f ~/Library/Preferences/Macromedia/Flash\ player/Logs/flashlog.txt | perl -ne 'use Encode;use Encode::Guess;Encode::Guess->set_suspects(qw/euc-jp shiftjis 7bit-jis/); $_ = Encode::decode("Guess",$_);print utf8::is_utf8($_)? encode("utf-8",$_):$_;'