2011年6月19日日曜日

GNU screen の文字コード指定

パッチの使い方を説明する前に GNU screen の文字コードについて簡単におさらい。GNU screen では2種類に場所に文字コードを指定できます。

1種類目は screen のウィンドウごとに持っている文字コードです。ウィンドウというのは screen 個々の画面のことで中で動いているシェル/プログラムが使用する文字コードだと思えばわかり易かな。ctrl-a ctrl-c とかで新規に作成して ctrl-a ctrl-n とかで切り換えるやつです。(emacs や shell との相性が悪いので当然キーは ctrl-a から別のものに変えていますが、いちおうデフォルトの ctrl-a で説明)。スクリーンはウィンドウごとに別々の文字コード指定できます。ctrl-a : encoding utf8 とかすればそのウィンドウの文字コードを変更できます。ウィンドウの文字コードのデフォルトは ~/.screenrc に defencoding で指定します。

2種類目は端末文字コードです。これは screen に接続している端末エミュレータ文字コードで、使用しているや xterm の putty とかの文字コードになります。ウィンドウと端末の文字コードが異なる場合には screen は文字コードの変換をしながら入出力を行います。例えば ssh でログインした先のサーバが UTF-8環境で、使用している端末エミュレータが EUC-JP の場合には ctrl-a : encoding utf8 eucjp とすることで、表示は UTF-8 ⇒ EUC-JP 変換され、キー入力は EUC-JP ⇒ UTF-8 変換されます。

ctrl-a : encoding . eucjp とすることで端末側の文字コードだけを変更することもでます(ドットが重要)。デフォルトは screen -x で接続する時に環境変数LANGや termcap等から取得されます。

知っておくと異った文字コード環境で作業する時に便利です。

0 件のコメント:

コメントを投稿