最近web APIを提供するケースが多くなってきたのだが、問題はテスト時にパラメタに2バイト文字をセットするとき。
簡単に言えばURLエンコードしろと。
できるだけ簡単にやりたいのでnkfをつかってやることに。
nkf-2.07-1.1.fc6
な環境で実行することとする。
$ echo 'ほげ?' |nkf -sMQ |tr = %
s:出力文字をSHIFT-JISとする
MQ Quoted stream に変換する
単にここまで実行すると
$ echo 'みずほ '|nkf -sMQ
=82=DD=82=B8=82=D9=20
この結果をパイプでtrして=を%にしてあげるわけですな。
----
おまけ。
半角カナでやりたいときはもう一つオプションが必要。
nkfのデフォルトの動作としては 半角カタカナを全角カタカナに変換するらしい。
$ echo 'ホゲ' |nkf -sxMQ |tr = %
-x 通常おこなわれる、いわゆる半角カナ (JIS X 0201 片仮名) からいわゆる
全角カナ (JIS X 0208 片仮名) への変換を行わず、半角カナを保存する。
入力は、Shift_JIS の 1byte カナ、SO/SI、ESC-(-I, SSO を受け付ける。
出力は、日本語 EUC 中では SSO、JIS コード中では ESC-(-I をデフォル
トで用いる。