
FreeBSDを使用して国別の文字を正しく表示しようとしています。男性。 8.1と9.0で次のコマンドを実行してみました。
# PAGER=less LANG="pl_PL.UTF-8" man -d -M. ./man.1
-- Using architecture: i386:i386
-- Using pager: less
-- Using manual sections: 1:1aout:8:2:3:n:4:5:6:7:9:l
-- Using locale paths: pl_PL.UTF-8:pl.UTF-8:en.UTF-8:.
-- Using standard page width
-- Searching for ./man.1
-- Found a usable page, displaying that
-- Command: /usr/bin/zcat -f ./man.1 | tbl | groff -S -P-h -Wall -mtty-char -man -Tascii -P-c | less
しかし、次のように印刷されます。
プログラマージョークシステムowA przeglAdarkA stron podrAcznika ekranowego.KaA1 / 4dy Argument ...
同じマンページがLinuxホストに正しく表示されます。
プログラマージョークシステム、przeglądarkąstronpodręcznikaekranowego。カズディの主張...
知識豊富な人が私に9.0のマンページを教えてくれました。とみなされる正しく表示するには。私は何を見逃していますか?
答え1
LESSCHARSET=utf-8
私はあなたがあなたの環境に持っているものを見逃していると思います。少なくとも私のFreeBSDホストでは、この設定を使用してマニュアルページを正しい方法で見ることができます。
答え2
その主張はあいまいに-Tascii
見えるgroff
。
man
さらなる調査によると、このパラメータはMANPATHのマニュアルページがある場所に基づいて設定されているようです。
たとえば、私のシステムでは、-Tutf8
デバッグ出力が表示されるたびに次のようになります。
Found manpage /usr/share/man/en.UTF-8/man1/...
ただし、-Tascii
使用履歴を表示するとき
Found manpage /usr/share/man/man1/...
man
この場合、マニュアルページのパスにロケール名が表示されず、デフォルトがASCII / Cロケールに設定されていることが問題だと思います。
回避策として、以下を試してください。
mkdir -p pl.UTF-8/man1
cp man.1 pl.UTF-8/man
man -d -M. man