[已解决]7.10里面man乱码了

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

[已解决]7.10里面man乱码了

#1

帖子 bones7456 » 2007-10-22 16:47

从7.04升级到7.10,发现man乱码了,以man ls为例,现象如图.另外界面和终端中的文件名均正常.
下面是一些信息:

代码: 全选

lily@LLY:~$ cp /usr/share/man/man1/ls.1.gz .
lily@LLY:~$ gunzip ls.1.gz 
lily@LLY:~$ enca ls.1 
7bit ASCII characters
lily@LLY:~$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE=zh_CN@pinyin.utf8
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=
lily@LLY:~$ 
附件
man ls 的结果
man ls 的结果
上次由 bones7456 在 2007-10-22 17:24,总共编辑 1 次。
关注我的blog: ε==3
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#2

帖子 bones7456 » 2007-10-22 17:10

恩,有点眉目了,应该和我在7.04时装的man中文包有关系.
man ls时是先去找 /usr/share/man/zh_CN/man1/ls.1
而不是 /usr/share/man/man1/ls.1.gz
sudo mv /usr/share/man/zh_CN/man1/ls.1 /usr/share/man/zh_CN/man1/lsxxx.1 之后man ls可以正常显示英文man.
但是man是怎么觉得先搜索 zh_CN 里面的呢? /etc/manpath.config 里面没有相关信息啊:

代码: 全选

lily@LLY:~$ cat /etc/manpath.config | grep -v '^#.*'
MANDATORY_MANPATH                       /usr/share/man
MANDATORY_MANPATH                       /usr/X11R6/man
MANDATORY_MANPATH                       /usr/local/man
MANPATH_MAP     /bin                    /usr/share/man
MANPATH_MAP     /usr/bin                /usr/share/man
MANPATH_MAP     /sbin                   /usr/share/man
MANPATH_MAP     /usr/sbin               /usr/share/man
MANPATH_MAP     /usr/local/bin          /usr/local/man
MANPATH_MAP     /usr/local/bin          /usr/local/share/man
MANPATH_MAP     /usr/local/sbin         /usr/local/man
MANPATH_MAP     /usr/local/sbin         /usr/local/share/man
MANPATH_MAP     /usr/X11R6/bin          /usr/X11R6/man
MANPATH_MAP     /usr/bin/X11            /usr/X11R6/man
MANPATH_MAP     /usr/games              /usr/share/man
MANPATH_MAP     /opt/bin                /opt/man
MANPATH_MAP     /opt/sbin               /opt/man
MANDB_MAP       /usr/man                /var/cache/man/fsstnd
MANDB_MAP       /usr/share/man          /var/cache/man
MANDB_MAP       /usr/local/man          /var/cache/man/oldlocal
MANDB_MAP       /usr/local/share/man    /var/cache/man/local
MANDB_MAP       /usr/X11R6/man          /var/cache/man/X11R6
MANDB_MAP       /opt/man                /var/cache/man/opt
SECTION         1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7
lily@LLY:~$ 
关注我的blog: ε==3
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#3

帖子 bones7456 » 2007-10-22 17:13

另外 man -M /usr/share/man ls 也可以正常显示英文.
关注我的blog: ε==3
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#4

帖子 bones7456 » 2007-10-22 17:24

已解决.

方法: sudo apt-get install manpages-zh
替换掉原来的 manpages-zh-utf8 ,再 man ls 正常显示中文的帮助.

再一看,manpages-zh里面的文件居然都是 GB2312 编码的?不解了,难道历史在倒退 :?:
关注我的blog: ε==3
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

变态的man。不认utf8

#5

帖子 eexpress » 2007-10-23 11:28

代码: 全选

☎  cat man-zh_CN转换到utf8.bash 
#!/bin/bash 

cd /usr/share/man/zh_CN/
for k in *
do
cd $k
for i in *.gz 
do 
#   j=`echo $i|awk -F'.gz' '{print $1}'`  # 不知道有什么好方法 
   j=`echo ${i%\.gz}` 
   gunzip $i 
   iconv -f utf8 -t gb18030 $j >tmp 
   mv tmp $j 
   gzip $j 
done
cd ..
done
● 鸣学
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

#6

帖子 fanhe » 2007-10-27 16:05

原来是那个man能直接认gb18030了 8)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#7

帖子 eexpress » 2007-10-27 16:17

是变态的不认utf8了。什么人啊。
● 鸣学
回复