Linux下MAN乱码问题的解决
时间:2009-01-11
来源:互联网
情况是这样的:我在/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="<none>")
在网上搜了下,有人说是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文档,系统会为我们选择英文的。
我发现是系统为我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="<none>")
在网上搜了下,有人说是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文档,系统会为我们选择英文的。
作者: imake 发布时间: 2009-01-11
我猜:确实是你locale设置不对。你列一个locale -a出来干嘛,要看你当前的locale。。
引用:
作者: imake
情况是这样的:我在/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="<none>") 在网上搜了下,有人说是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文档,系统会为我们选择英文的。 |
作者: richardpku 发布时间: 2009-01-11
最简单的方法,修改 /etc/portage/package.use 加一行 sys-apps/man-pages -linguas_zh_CN
然后重新 emerge -1 man-pages
然后重新 emerge -1 man-pages
作者: wd_afei 发布时间: 2009-01-11
引用:
作者: richardpku
我猜:确实是你locale设置不对。你列一个locale -a出来干嘛,要看你当前的locale。。
|
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
作者: imake 发布时间: 2009-01-11
同样问题。留个记号。
作者: htcool86 发布时间: 2009-01-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28