1cocot - COde COnverter on Tty 2 3Copyright (c) 2002-2012 IWAMURO Motonori All rights reserved. 4 5 61 これは何か? 7 8 端末とプロセスの間に割り込んで文字コード変換を行うツールです。Cygwin 9 を含むUNIX互換環境において、sshやtelnetなどとともに利用できます。 10 (Windowsに附属のtelnetでは使えません) 11 12 初期バージョンではCygwin環境限定でしたが、Kazuhiro NISHIYAMAさんの手 13 により、autotools対応になりました。 14 15 なお、実装は詳解UNIXプログラミング・新装版[1]、及びFreeBSDの 16 script.c[2]を参考にしました。 17 18 192 ビルド/インストール 20 212.1 事前準備 22 23 Cygwinの場合、libiconv, libutil(inetutilsに含まれる)を使用しているた 24 め、事前にこれをインストールしておく必要があります。Cygwin Setupの 25 Select Package画面で、Category→Devel→libiconvおよびCategory→Net→ 26 inetutilsを選択してインストールしてください。 27 ※Cygwinパッケージの問題で、libiconvに関する環境が壊れている場合があ 28 るようです。その場合はlibiconvを再インストールしてみてください。 29 30 それ以外のOSについては、適宜必要なパッケージをインストールしておいて 31 ください。(手抜き^^;) 32 332.2 ビルド/インストール手順 34 35 ビルド/インストールの手順は、一般的なautotoolsベースのツールと同様です。 36 ターミナルエミュレータやプロセスのエンコーディングを変更したい場合は、 37 --with-default-term-code、--with-default-proc-code を指定してください。 38 デフォルトはターミナルが UTF-8、プロセスが CP932 となっています。 39 40 ./configure [--with-default-term-code=CODE] [--with-default-proc-code=CODE] 41 make 42 make install 43 44 453 環境設定 46 47 コマンドプロンプトから利用する場合、リモート環境にcygwinのterminfo情 48 報をインストールする必要があります。以下にその例を示します。なお、こ 49 こではsshが利用できることを前提としています。 50 51 1) terminfo情報の取得 52 Windows環境上で以下を実行します。 53 $ infocmp cygwin > cygwin.terminfo 54 55 2) terminfo情報の転送 56 $ scp cygwin.terminfo [リモートホスト]:/tmp 57 58 3) リモート環境にログイン 59 $ ssh [リモートホスト] 60 61 4) リモート環境の設定 (スーパーユーザ権限を得られない場合のみ) 62 スーパーユーザ権限を得られない場合は事前設定が必要です。設定方法 63 はお使いのリモート環境に依存すると思われますので、詳細はリモート 64 環境のterminfoマニュアルページ等をご参照ください。以下ではLinux 65 (ログインシェルはbash)を想定しています。 66 $ cd 67 $ mkdir .terminfo 68 $ export TERMINFO=$HOME/.terminfo 69 bashのスタートアップスクリプトにも環境変数TERMINFOの設定を記述し 70 ておきます。 71 72 5) リモート環境にterminfo情報を登録 73 ※スーパーユーザ権限を得ることができる方は、suもしくはsudoを用い 74 て以下を実行してください。 75 # tic /tmp/cygwin.terminfo 76 77 784 どうやって使うのか? 79 80 コマンドプロンプトやminttyを使っているときに、文字コードがEUC-JPであるホ 81 ストにログインするときに有用です。 82 83------------------------------------------------------------------------------ 84iwa@RYPRIM /winnt ←Windows上にいる 85(528)> \ls --show-control-chars *.bmp ←文字コードはShift_JIS 86winnt.bmp サンタフェ.bmp 青いレース編み 16.bmp 87winnt256.bmp シャボン.bmp 大草原の風.bmp 88しゃくなげ.bmp フィッシング.bmp 珈琲カップ.bmp 89グリーン ストーン.bmp 羽毛.bmp 90サポテック織り.bmp 隅田川.bmp 91 92iwa@RYPRIM /winnt 93(529)> cocot ssh lydia ←Linuxにloginしてみた 94Linux lydia 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown 95No mail. 96Last login: Sat Aug 24 21:11:13 2002 from ryprim.vmi.jp 97[iwa@lydia]~(1)$ echo $LANG ←EUC-JP環境 98ja_JP.eucJP 99[iwa@lydia]~(2)$ date 1002002年 8月 24日 土曜日 21:11:14 JST ←文字化けしてません 101------------------------------------------------------------------------------ 102 103 オプションは以下の通りです: 104 105 -o LOGFILE コード変換前のコマンドの出力を全てファイルに出力します。 106 -a -oオプション指定時に追記モードにします。 107 -t TERM_CODE 108 -t TERM_INPUT_CODE,TERM_OUTPUT_CODE 109 ターミナルの文字コードを指定します。 110 デフォルトはCP932。(configureオプションで変更可) 111 -p PROC_CODE 112 -t PROC_INPUT_CODE,PROC_OUTPUT_CODE 113 コマンドプロセスの文字コードを指定します。 114 デフォルトはEUC-JP。(configureオプションで変更可) 115 -i ISO-2022-JPのエスケープシーケンスを無視します。 116 -n 無変換モードにします。-oオプションを組み合わせて、script(1) 117 の代わりに使用します。 118 -h, --help ヘルプを表示します。 119 -v, --version バージョンを表示します。 120 121 1227 ライセンス 123 124修正BSDライセンスとします。(see. COPYING) 125 126 1278 参考資料 128 129[1] 詳解UNIXプログラミング・新装版 130 http://www.pearsoned.co.jp/washo/unix/wa_uni12-j.html 131 132[2] FreeBSDのscript.c 133 http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/script/ 134 135[EOF] 136