2012年10月29日月曜日
2012年10月23日火曜日
Perlで文字コード判別
たまにnkf入っていないサーバーとかあるので、そんな時はPerlで文字コードを調べる。。こともあるかも。
今こんな感じで書いているけど、おかしいorもっと簡潔にかけるなら修正する。
と、見せかけnkfがないならpiconv使えばいいじゃない!
今こんな感じで書いているけど、おかしいorもっと簡潔にかけるなら修正する。
と、見せかけnkfがないならpiconv使えばいいじゃない!
PerlでQuotedPrintをデコード/エンコードするワンライナー
MIME::QuotedPrintを使う
QuotedPrintにエンコード
$ echo "エンコード文字" | perl -M'MIME::QuotedPrint' -e 'while (<STDIN>) { print encode_qp($_); }'=E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=89=E6=96=87=E5=AD=97
QuotedPrintのデコード
$ echo "=E3=82=A8=E3=83=B3=E3=82=B3" | perl -M'MIME::QuotedPrint' -e 'while (<STDIN>) { print decode_qp($_); }'エンコ
Base64操作はコマンドで
Base64は、Linuxのcoreutilsに含まれているので素直にそれ使う。方が楽だと思う。
Base64エンコード
$ echo "べーすろくよん" | base64
44G544O844GZ44KN44GP44KI44KTCg==
Base64デコード
$ echo 44G544O844GZ44KN44GP44KI44KTCg== | base64 -d
べーすろくよん
ついでにヘッダーで使うエンコードのフォーマット
=?{charset}?{B or Q}?{Encoded String}?=
例.
=?utf8?B?44G544O844GZ44KN44GP44KI44KTCg==?=
結果.
「べーすろくよん」と表示される。
ワンライナー
っていいね!
2012年10月22日月曜日
登録:
投稿 (Atom)