手册页中的国家字符

手册页中的国家字符

我正在尝试使用 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 论点...

相同的联机帮助页可以在 Linux 主机上正确显示:

程序人开玩笑系统, przeglądarką stron podręcznika ekranowego。卡兹迪的论点...

一位知识渊博的人告诉我 9.0 的联机帮助页被认为是才能正确显示。我缺少什么?

答案1

我认为您缺少LESSCHARSET=utf-8在您的环境中拥有的东西。至少在我的 FreeBSD 主机上使用此设置允许我以正确的方式查看手册页。

答案2

的论点-Tascii看起来groff很可疑。

经过进一步调查,似乎man根据 MA​​NPATH 中找到手册页的位置来设置此参数。

例如,在我的系统上,-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

相关内容