配属先研究室の端末Emacsのマニュアルコマンドの文字化けが気持ち悪い
ので、文字コードにはあまり知識がないけど、ない脳みそこねこね考えて
みる。あれはDebianだっかかな。
manプロセス側でなく、なるべくEmacs側で処理出来るようにするのが目的です。
---
うちのubuntu環境の文字コードは標準でUTF-8
(getenv "LANG") ; "ja_JP.UTF-8"
default-process-coding-system ; (mule-utf-8 . mule-utf-8)
locale-coding-system ; utf-8
(1) manプロセスが処理した文字列をそのまま表示すると(つまりエスケー
プシーケンス処理しない)と、こんな感じ。
(shell-command "man man") または
M-x: shell-command[RET] man
---
MAN(1) Manual pager utils MAN(1)
\345\220名\345\211前
man - オンラインリファレンスマニュアルのインターフェース
\346\233書\345\274式
man [-c|-w|-tZT device] [-adhu7V] [-m system[,...]] [-L locale] [-p
string] [-M path] [-P pager] [-r prompt] [-S list] [-e extension]
[[section] page ...] ...
man -l [-7] [-tZT device] [-p string] [-P pager] [-r prompt] file ...
man -k [apropos options] regexp ...
man -f [whatis options] page ...
---
(2) 一方、Emacsのmanコマンドを介すると、こんな感じ。
文字化け悪化
(man "man") または
M-x: man[RET] man
---
MAN(1) Manual pager utils MAN(1)
\345\220\345\220\215-\345\211\345\211\215-
man - \343\202�\203潟\203�\202ゃ\203潟\203�\203\225\343\202<\203�\203潟\202鴻\203\236\343\203\213\343\203ャ\202≪\203�\201�\202ゃ\203潟\203帥\203若\203\225\343\202с\203若\202\271
\346\233\346\233後弱\274\217
man [-c|-w|-tZT device] [-adhu7V] [-m system[,...]] [-L locale] [-p string] [-M path]
[-P pager] [-r prompt] [-S list] [-e extension] [[section] page ...] ...
man -l [-7] [-tZT device] [-p string] [-P pager] [-r prompt] file ...
man -k [apropos options] regexp ...
man -f [whatis options] page ...
---
ここでEmacsの文字のエンコード、デコード関数を使ってみる。
伝統的なLinuxならば文字コードはeuc-jpだろう。
(encode-coding-string "書式" 'euc-jp) ; "\275\361\274\260"
(encode-coding-string "書式" 'utf-8) ; "\346\233\270\345\274\217"
UTF-8エンコードした文字列の方が(1)の"書式"の文字付近のものと一致し
ている気がする。
---
自分の仮定が正しければマニュアル自体はUTF-8で通っていると思う。
問題なのは、
Emacsはmanプロセスと通信してバッファにその文字列をUTF-8で流してい
る。が、その文字列にはエスケープシーケンスも含まれていて、【本来日本
語文字になるはずのバイト列とマニュアル整形のためのエスケープシーケ
ンスが運悪く被ってしまっているのではないか?】
だから、Emacsのman関数側が処理の時にバイト列を解釈できずに文字化け
するのかもしれない。
自信ないがここまで書いた。一旦寝て後で考え直そう。
またEmacs改悪の悪い癖がでてきたなあ…
2009年4月16日木曜日
参考にならないmanコマンドの文字化けについてのメモ
2009年4月7日火曜日
ubuntu インストール
windows と併用している linux を vine4.2 から ubuntu-ja-8.10 に変えてみた。
- linux のインストールは何度かやったことがあるのでパーティション操作などは特に 苦労なし。ubuntu(と言うより GUI)楽だなあ。 以前に入れたもといえば opensuse,fedora,vine (LiveCD も含めれば slax,knoppix) …ディスクへのインストールは4度目か。苦労はしなくなったが上達した気がしないなあ。
インストールは windows とのデュアルブート。 windows 領域に ubuntu をインストールすることも可能なのだが、 以前に knoppix でそれを試した時は、あまり操作感がよろしくなかった印象だったので。マシンスペック が貧弱でなかったら仮想化なんかも出来そうなものだが...
SLIME の設定楽。 asdf も ubuntu の標準インストールで出来るみたい。まだ入れてない。 デフォルトでは sbcl がインストールされる。これは入れた。
バックアップをとったつもりがドットファイル(.bashrc とか)がなくなってた事に気づい て凹んだ。
emacs 周りはやっぱり面倒。 .emacs の微妙な違いとか、ライブラリとか。 こういう時にバージョン管理システムが役に立つのだろうかね。
root パスワードが分からなくて焦った。 (ubuntu では管理者権限の必要なコマンドは sudo が標準)
anthy(日本語入力)の以降もすべきだったかも。 そこまで使い込んでいないけど。
firefox の flash-plugin が adobe 純正のものでなかったので差し替え。 swfdec-mozzila -> adobe-flashplugin 単にインストールするだけだと swfdec が優先されるらしいので、これは削除する。
いつぞや作った Linux From Scratch がインストール時のパーティション操作のおかげで 起動できなくなった。後で直そう (-> /boot/grub/menu.lst)
このメモを次回につなげよう。 でも次回っていつだろうか?