調べれば結構出てくるんだけど、僕の場合の対応策をメモっとく。
HTML自体は文字化けしてなくても、画像が文字化けする場合、TrueTypeFontがないかららしい。
なので、とりあえずフォントを探してみる。
OSによって違いがあるかもしれないけど、/usr/share/fonts/あたりを探してみる。
で、どこかにTrueTypeってディレクトリがあると思うので、日本語のTTFのパスをチェックして、webalizerのconfファイルに書く。
TrueTypeFont 日本語TTFのパス
こいつを追記してやればOK。
つづき。
manが文字化けするので、lessのオプションの変更を/etc/man.configに施したんだけど、根本的な対策ではなかった。
要するに、less自体が文字化けしているのだ。
個人的には多少不便でもmore派だし、サーバ本体を操作する機会なんてほとんどない。
PoderosaとかTeraTerm使ってれば、スクロールバーを操作して、前の画面見られるし、全然気がつきませんでした。
現状、
ls -la | less
を実行すると、ファイルのタイムスタンプの"7月"が"7<B7><EE>"となってしまう。
とりあえずJLESSCHARSETをユーザの環境変数に組み込んでみる。
これはたいていどこのサイトにも書いてある手法だ。
でもダメ(この時点ではmanのPAGER設定にJLESSCHARSETがなくてもOKなことに気が付いていない)。
で、man.configに何を設定したのか思い出してみる。
まずは
JLESSCHARSET=japanese
を入れた。
次に、lessのオプションをRからrに変更した。
やってみた。
alias less='less -r'
直った。
ふぅむ、オプションの問題か。
とりあえずJMにお伺いをたててみる。
Manpage of LESS
-r または --raw-control-chars
「そのままの」制御文字を表示させるようにする。デフォルトでは、制御文字をキャレット表記を使って表示する。例えば、control-A (8 進数 001) は "^A" と表示される。警告: -r オプションが指定されると、 less は (制御文字のタイプにどのように画面が反応するかに依存しているために) 画面の実際の状況の経過を追うことができない。よって多くの場合、長い行が誤った位置で分割されてしまうといった問題が生じる。
まったくもって今回の事象の説明にならん、気がする。
こんなときはUNIXの部屋だ!
UNIXの部屋 検索:less (*BSD/Linux/Solaris)
ここに、オプションの一覧があり、-rの説明には以下のようにある。
コントロールコードをそのまま表示する。デフォルトでは control-A は ^A と表示されるが、-r を指定するとそのまま表示する。これによって、cat で日本語が表示できる環境なら、less -r で日本語が表示できるかも。
一応、「ふむふむ」と言えるような説明文だ。
Googleで"less -r"で検索してみても、正直、満足のいく文章はなかった。
JMやmanpageじゃ、オプションはrよりもRを薦めてるし、実際のところどうなんだろう?
ついでに、UNIXの部屋で知った環境変数を。
環境変数LESSにはlessのオプションを指定できるらしい。
export LESS=-rgj10
としてみた。
元記事
HOMEGROWN | lessの不思議
http://homegrown.jugem.cc/?eid=273
仕事でRed Hat Enterprise Linuxをインストール、設定することになった。
調査段階でほとんどのことは終わってるので、実質的には作業するだけなんだけど…実際にはそうはいかない。
Red HatってUTF-8なんだけど、インストールするサーバプログラムがEUCなので、i18nを修正して無理矢理EUCに変更した。
その影響もあって、manが化ける。
Red Hatの9からFedora Coreになったときに、文字コードがEUCからUTF-8になったせいで、EUC->UTF-8への変換方法ってワリといろんなところに書かれてた。
しかし、その逆UTF-8からEUCへの変更ってどこにも出てこない(見つけられないだけかも)。
しかも大半がPAGERにlvを使えとある。
which lv しても出てきませんが?(パッケージを厳選しすぎたか?)
でもまぁ、直せたので、一応残しておこうと思って。
参考にしたページはここ。
ミラクル・リナックス:日本語manページの文字化けについて
http://www.miraclelinux.com/technet/faq/data/00087.html
ここでは/etc/sysconfig/i18nで文字コードをShift-JISかUTF-8にした場合の修正手順が載っている。
UTF-8の場合の、iconvをはさむやり方はNGだったので、Shift-JISのパターンで行ってみる。
上記ページには、以下のように記載されている。
JNROFF LANG=ja_JP.eucJP /usr/bin/groff -Tnippon -mandocj
PAGER JLESSCHARSET=euc-sjis /usr/bin/less -isr
jnroffは入ってないので、ここは無視して、PAGERのみ変更を加える。
PAGER JLESSCHARSET=euc-sjis /usr/bin/less -isr
…まぁ、これだけ。
念の為、再起動…は大袈裟なので、ログアウトして、再度入ってみる。
でもってman lsと入れると…
無事、日本語が表示されてました。
その後、JLESSCHARSETはセットしなくても、正常に表示されることが判明。
問題はmanコマンドそのものではなく、実はlessそのものにあったと気が付くのに、時間がかかった。
つづく…
元記事
HOMEGROWN | manの文字化け
http://homegrown.jugem.cc/?eid=268
追記(2007/09/03)
@ITにて、UTF-8からEUC-JPに変更する方法が記載されていた。
デフォルトの文字コードをEUC-JPに変更するには - @IT
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a043eucjp.html
そこでもmanの文字化けが触れられているが…
lvがインストールされていない場合には、事前にlvをインストールしておく
ってのは、どうよ?
最初、全然気がつかなかったんだけど、そのままじゃ less が文字化けするのね(接続したサーバによっては新しいものが取得できるかもしれないけど)。
色々検索すると、どうやら Cygwin JE で日本語対応の less が入手できるらしい。
このURLにアクセスして、
http://cygwin-je.sourceforge.jp/cygwin_je/release/less/
ブツをダウンロードする、と。
僕が見たときは「less-358_iso254-3.tar.tar」だったけど、今見たら「less-358_iso254-3.tar.bz2」になってるね。なんでだろ?
まぁ、ダウンロードしたtar(tar.bz2)を展開して… 「/」に置いて展開したら、適当なディレクトリに入れてくれたので、特に気にすることもなかったんだけど。一応、「/tmp」かどっかで試した方がいいかもね。
これでCygwinからは less も問題なく使えるんだけど…
(追記)
結局は、「setup.exe」の「other site」に「http://cygwin-je.sourceforge.jp/cygwin_je/」を放り込んどきゃよかったって話かな?
参考URL
Using Cygwin. Compiled package
http://sohda.net/cygwin/#compiled
(追記2)
ためしにコマンドプロンプトでlessを使ってみた。
コマンドプロンプトから、例えば
dir | less
としてみると…
<83>
とかがズラッと。
そもそもコマンドプロンプトで使うなよって話なんだろうけど、Cygwinはちょっと起動が遅いし、Poderosaのようなのを起動させるのもなぁ…と思うと、「win+r」で「cmd(.exe)」を叩いた方が早いなぁ、とか思っちゃう。
基本的にはmore派だからいいんだけど、問題解決はしておきたい。
…と、よく考えてみたら、これってHeartache Reborn: lessの不思議で書いた内容と同じじゃんか。
直接入力するのなら、
dir | less -r
で解決する問題だった。
やっぱりWindowsにもaliasが欲しいけど…
元記事
HOMEGROWN | Cygwin 環境設定(3) - lessの文字化け
http://homegrown.jugem.cc/?eid=214
ようやく、Cygwinのviで日本語を使う方法が判明。
ホームディレクトリに .vimrc を作って…
set encodin=japan
set fileencodings=sjis
を書き込む。
マァ、フツーに.vimrcだったね。
これですっきりした…
元記事
HOMEGROWN | Cygwin 環境設定(2) - viで日本語を使う
http://homegrown.jugem.cc/?eid=213
一応、参考にさせてもらったサイト
etc #020 ≪cygwinで日本語入力をする方法≫
http://www.nurs.or.jp/~ppoy/access/etc/etc020.html
ログインユーザのホームディレクトリにある「.inputrc」を編集します(無い場合は作成)。
以下の内容を追記する。
set kanji-code sjis
set convert-meta off
set meta-flag on
set
output-meta on
ま、viが入っていれば、立ち上げたCygwinから「vi .inputrc」で開けばいい。
これで日本語の入力ができるらしい。
でもって、今度は表示の方。
これは「.bashrc」を編集する。
export JLESSCHARSET=japanese-sjis
alias ls='ls --show-control-chars'
※JLESSCHARSETのパラメタって、よく判らないね。
「source .bashrc」で再度読み込ませてもいいんだろうけど、一旦ウィンドウを閉じて、Cygwinを再度起動させた。
…と、正常に日本語が扱えるのを確認できました。
meta-flagを忘れてたけど、正常に動いたなぁ
続いて参考にさせていただいたのは、ここ↓
【特集】Windowsユーザーへ贈るUnixへの架け橋 - Cygwinを使いこなそう (MYCOMジャーナル)
http://journal.mycom.co.jp/special/2002/cygwin/menu.html
ここの中に、Cygwinを起動しなくても、UNIXコマンドを使う方法が載ってた。
【特集】Windowsユーザーへ贈るUnixへの架け橋 - Cygwinを使いこなそう (5) 環境設定と簡単な使用方法(1) (MYCOMジャーナル)
http://journal.mycom.co.jp/special/2002/cygwin/004.html
一言で言うなら、「PATHを通す」ね。
「マイコンピュータ」→「プロパティ」→「詳細」→「環境変数」で、ユーザかシステムの環境変数の「PATH」に「c:\cygwin\bin」を追加するだけ。
こちらはUNIX系OSと違って、読み込み直す必要はないので、「ファイル名を指定して実行(win+r)」あたりからプロンプトを起動させて、「ls」とかしてみると…
日本語表示できねーじゃんか!
よく考えてみれば、コマンドプロンプトからのlsはエイリアス設定が効いてない。
Cygwinからだとlsはls --show-control-charsに置き換わるワケだけど、コマンドプロンプトからじゃ、lsはlsのまま。
試しにls --show-control-charsを実行すると正常に日本語が表示される。
んんー、どうしよう。
中途半端な。
元記事
HOMEGROWN | Cygwin 環境設定
http://homegrown.jugem.cc/?eid=205
Labels
- apache (2)
- bash (1)
- CentOS (1)
- CPAN (2)
- CustomLog (1)
- Cygwin (5)
- C言語 (3)
- DBD::SQLite (1)
- DBI (1)
- gcc (1)
- Google Maps API (7)
- HTML (1)
- httpd.conf (1)
- iGoogle (1)
- Javascript (8)
- MySQL (4)
- Perl (1)
- PHP (11)
- PostgreSQL (1)
- sendmail (1)
- SetEnvIf (1)
- SQLite2 (1)
- Unix/Linux (16)
- vi (5)
- webalizer (1)
- Windows (13)
- xampp (1)
- yum (1)
- インストール (2)
- ケータイサイト (1)
- コマンド (2)
- シェルスクリプト (2)
- バッチファイル (3)
- フリーソフト (3)
- メール (2)
- レジストリ (1)
- 愚痴 (4)
- 日本語化 (6)
- 文字化け (3)
- 本 (1)