分页: 1 / 1

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

发表于 : 2007-10-22 16:47
bones7456
从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:~$ 

发表于 : 2007-10-22 17:10
bones7456
恩,有点眉目了,应该和我在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:~$ 

发表于 : 2007-10-22 17:13
bones7456
另外 man -M /usr/share/man ls 也可以正常显示英文.

发表于 : 2007-10-22 17:24
bones7456
已解决.

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

再一看,manpages-zh里面的文件居然都是 GB2312 编码的?不解了,难道历史在倒退 :?:

变态的man。不认utf8

发表于 : 2007-10-23 11:28
eexpress

代码: 全选

☎  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

发表于 : 2007-10-27 16:05
fanhe
原来是那个man能直接认gb18030了 8)

发表于 : 2007-10-27 16:17
eexpress
是变态的不认utf8了。什么人啊。