manを文字化け無くテキストに出力する(他の文字化けも解説)

manページをリダイレクトでテキストに落としたりすると、以下のように一部文字化けが発生してしまいます

(もはや、豆腐?雀牌?・・・白(ハク)?(笑))

tohu1

tohu2

manページは「名前」や「書式」などの見出しが強調表示されています

これは、強調表示するために制御コードが挿入されているわけですが、リダイレクトにより標準出力されたものはうまく表示できません
ちなみにこの制御コードは「Back Space(^H)」です

つまり、この制御コードを取り除けば、雀牌現象は発生しないことになります

■Back Space(^H) を出力しないようにリダイレクトする

# man ls | col -b > man-ls.txt

 

余談ですが、他にもLinuxの文字化けの解消法を記載します

Linuxでの文字化け

多くはLANGファイルで設定されているものを変更すれば解決します
まずは文字コードを確認しましょう

# echo $LANG
ja_JP.UTF-8
# echo | grep LANG
LANG=ja_JP.UTF-8
↑どちらも同じ結果になります。お好みでどうぞ

 

UTF-8に変更したいとき
# LANG=ja_JP.UTF8

EUC-JPに変更したいとき
# LANG=ja_JP.EUC-jp

環境変数の設定は一時的なものになってしまうので、ログイン後に展開されるようにログインシェルなどに記述しておくことをおすすめします

ログインシェルとは
ログイン時に自動的に読み込むシェルです
Windowsでいうとスタートアップでしょうか
ここにコマンドを記述しておけばログインと同時に読み込むことが可能です
ファイルは~/.bash_profile、~/.bashrc などがあります

CentOS7の場合は「/etc/locale.conf」に記述したりします

過去にこんな現象もありましたので、よかったら参考にしてください

【emacs】 すべて"□"で表示される
【現象】 Linux機 にて作成したドキュメントを "emacs" コマンドで開くと 文字がすべて "□" で表示される まるで文字化けというより豆腐(笑)のようだ・・・ 【環境】 OS: CentOS 5.4 ema...
タイトルとURLをコピーしました