SSブログ

lessコマンドとか一向に日本語表示できないよね… [Linux]

LinuxでUTF-8が一般的になっても、日本語表示ができないとか普通にあるという話。

 
LinuxでSSHでつないでいてlessコマンドで日本語の書いてあるテキストファイルを開けると文字化けというか、<>で囲まれたなんかよくわからないコードになって出てくる。こういうのを見るといまだに英語圏を前提としたシステムなんだなと思わざるを得ない。

vimとかで同じテキストを見ると普通に日本語が読めるのだが、vimにできてlessにできないというのがまぁおかしい。というか、基本lessはvimじゃなくてviベースのものだろうからそういう事になるのだろうが、UTF-8ぐらいは普通に出力してよって思うよね。

昔はi18n(internalization)と称して、コードの国際化が進んだと思ったが、lessはその中に入っていなかったのかもしれない。というかコードが固まってしまって動かそうという気にはならないのだろうな。UTF-8にOSが対応すればいいというだけではなくて、アプリケーションもそれに合わせないといけないというわけだ。

lessの日本語嫌いは本気モードで、nkfを通してlessにパイプしても化ける。基本的に日本語はダメみたいなのである。昔、jlessとかあった気がしたが、あれはEUC-JPとかShift-JIS対応だった気がする。

あまりにも枯れているツールってなかなか手が入らないんだよね。vimはコミュニティが活発でいいけど元のviは結構放置状態みたいなところってある。CUIのソフトってあまり変えると方々から非難の声が上がりそうだし。だけど変更してはいけないファイルをvimで開きたくないんだよね。だからこそのページャなんだしさ。

catで普通に標準出力に出すなら化けないんだよ。だからSSHクライアントの問題じゃなさそうなんだよね。lessを通すとダメになっちゃうってのも嫌な話で、lessを使いたくなくなるのだけれど、いいページャーが他にあるわけでもないし、less通さないで長い文字列読むのはしんどいんだよね。若い子でlessを使わずにcatで出して端末スクロールしていたのがいたんだけど、それはいつ気づくんだろうね。そういう基本的なところは初めにやらないと指摘してくれる人もいなくなる。

どうやらlessはASCIIコード以外は意図的にコード表示させている感じがするんだよね。開ける時に大体バイナリファイルだけど開く?って聞くし。そもそも他の文字コードがあってもそれを表示できない時期を引きずっているらしい。まぁバイナリファイルをサニタイズせずに開こうとすると、それでウイルスに乗っ取られる可能性もあるのだろうし、知らない文字コードよりも安全性をとっているのかもしれない。知らんけど。


と思っていたら新しいRHELではlessでも文字化けしないね。今までの日本語はEUC-JPだったからなのかなぁ。とにかく日本語が読めないという事はなくなった。Linuxは放っておけば改善されることも良くあるけれど、それも声を上げる人がいたからなんだろうな。

どちらにしても日本語が端末で読めることはいいことだ。というかそういうのはUTF-8で解決したんだと思ってたら、昔のLinuxはEUCを引きづっていたのでした。古い文字コードずっと使っていと、システム間の整合性が取りづらくなるんだよなぁ。どうにかならんか。まだテキストファイルとかならコメントが主だからいいけど、DBの中身とかどうすんだって話。そう簡単な話ではないよな。


コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0