man 乱码


http://g.51cto.com/mike/51371

安装groff_utf8
emerge groff_utf8
修改/etc/ man.conf里NROFF行为
NROFF       /usr/bin/groff-utf8 -Tutf8 -c -mandoc




gentoo下,装了 app-i18n/man-pages-zh_CN ,但是man ls,就是一堆地乱码,虽说大家都推荐看英文的man,但对于我这种英盲来说,有个中文的man页,还是有必要的,即使做为辅助也好。
在gentoo论坛里,其实很久以前就 有人提过此问题,虽然有解决办法,但是比较麻烦,而且有点小郁闷的是,居然过了这么久,此问题的包还没有正式进入gentoo的源。
从上面那帖子里,可以知道,问题的原因就是man用的 groff/nroff 不支持utf8.解决办法也就是换一个nroff而已。照着做估计也没问题,但是后来发现 gentoo-china-overlay里面其实是有groff-utf8的。所以就找了个更简单的办法:
我不想用layman把整个overlay都下载下来,所以用了如下命令:
cd /usr/local/portage 之前我就建过这个目录,没的话,参考 这里
mkdir -pv app-text/groff-utf8
wget “http://gentoo-china-overlay.googlecode.com/svn/trunk/app-text/groff-utf8/groff-utf8-0.ebuild”
ebuild groff-utf8-0.ebuild manifest
emerge groff-utf8 -av
完了之后,按提示
vim /etc/man.conf 将里面的 NROFF 那行改为 NROFF /usr/bin/groff-utf8 -Tutf8 -c -mandoc
完成了。
 
其它相关参考:
======================================
解决 man乱码问题
http://www.oceanboo.cn/read.php/272.htm 
http://li2z.cn/2008/09/19/gentoo_man/ 
见上面的二个帖子,我最终的解决方法如下
安装groff_utf8
emerge groff_utf8
修改/etc/ man.conf里NROFF行为
NROFF       /usr/bin/groff-utf8 -Tutf8 -c -mandoc
再在.bashrc里增加
alias  man="LANG="en_US.UTF-8"  man"
alias manzh="LANG="zh_CN.UTF-8" /usr/bin/ man"
这样一般情况下看的就是英文,需要看中文的时候就使用manzh命令
===================================
 
我的操作系统:Gentoo 2.6.27-r7
情况是这样的:我在/etc/make.conf中加了LINGUAS="zh_CN en" 在USE里加了unicode,然后在我一次升级系统后, man就变成 乱码了……
我发现是系统为我emerge了一个叫做app-i18n/ man-pages-zh_CN的包造成的。
在网上查了几天都没结果,后来看了gentoo的本地化手册,说是要在/etc/ man.conf里该一行数据,把NROFF /usr/bin/nroff -Tascii -c -mandoc改成NROFF /usr/bin/nroff -mandoc -c,我改了,结果还是没效果,也就没管了,今天我在终端输入 man page看到结果提示:Cannot open the message catalog " man" for locale "zh_CN.UTF-8"
(NLSPATH="")
在网上搜了下,有人说是locale没设置正确,我又输入locale -a看了下,结果如下:
C
en_US
en_US.iso88591
en_US.utf8
POSIX
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
完全没错啊……
后来不知道在哪里看到一篇帖子,说是groff的问题。
于是按照它的提示,我先emerge了一个叫做groff-utf8的包,然后修改/usr/bin/nroff文件。
这是个shell脚本,用nano打开就行了,在最后几行里找到PATH="$GROFF_RUNTIME$PATH" groff -mtty-char $T $opts ${1+"$@"}
把其中的groff改为groff-utf8就行了!
如果你还不行,提示:/usr/bin/groff-utf8: unsupported device 'ascii'
那就是你的/etc/ man.conf没有修改,把NROFF /usr/bin/nroff -Tascii -c -mandoc改成NROFF /usr/bin/nroff -mandoc -c。在看看,应该就好了。又中文的 man文档就会优先选择中文的,如果没有中文的 man文档,系统会为我们选择英文的。




你可能感兴趣的:(man 乱码)