hack のためのネタ帳, etc,,,

日本語版 Windows だと ping とか traceroute とかが軒並み SJIS (と言うか CP932 ?)出力なので UTF-8 環境で使ってる cygwin だと片っ端から文字化けして困る。

以下のようなラッパーを書いて、目的のコマンド名にリネームなりシンボリックリンクなりしておくと幸せになれる
sjiswrapper.iconv
#!/bin/sh
CMD="${0##*/}.exe"
("$CMD" "$@" 3>&1 1>&2 2>&3 | iconv -f CP932 -t UTF-8 ) 3>&1 1>&2 2>&3 | iconv -f CP932 -t UTF-8
sjiswrapper.nkf
#!/bin/sh
CMD="${0##*/}.exe"
("$CMD" "$@" 3>&1 1>&2 2>&3 | nkf -Sw ) 3>&1 1>&2 2>&3 | nkf -Sw
標準エラー出力もフィルタする必要があるので、標準出力と標準エラー出力の swap を 2 回行いそれぞれにフィルタかけてるところがミソ
使い方は、パスの通ったところで以下のようにシンボリックリンクしておけば良い。
ln -s sjiswrapper.iconv ping
ln -s sjiswrapper.iconv tracert
ln -s sjiswrapper.iconv nslookup

参考:

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます