2010年4月27日星期二

debian中文编码问题(apache & putty)

最近在自学debian下的服务器架设,感觉还好,不是很难..
apache服务器架好后,遇到的第一个坎就是中文编码的问题
搜索了N多资料,感觉自己快成了Google狂人..
虽然问题已经解决,但是网上并没有写的详细的好方法,于是记录并分享:)

首先是apache,用官方的源安装后,是2.2.3版本的
索引的时候,若文件名或者文件夹为中文,则显示乱码.
因为apache默认的编码是iso-8859-1 ,需要改成UTF-8 ,GB2312 中文编码
方法,(可以使用winscp软件,很方便)
编辑/etc/apache2/apache2.conf默认文件,找到区间

在IndexOptions后面加入 Charset=UTF-8 Charset=GB2312 即可
然后用命令重启apache

/etc/init.d/apache2 reload

索引的中文文件夹和中文文件名即可显示,网页文件内容还是乱码
找到/etc/apache2/apache2.conf 的 区间
会看到默认的文件编码依然是 iso-8859-1 ,改成
AddDefaultCharset UTF-8
AddDefaultCharset GB2312
再重启apache就OK了,打开index索引页或者中文网页的时候,便不再乱码

接下来,是putty的中文乱码问题,弄了好久才弄好...
要支援某个语言,首先需要有该语言的区域设置 (Locale) 资料.
可以在putty打入指令 locale -a 列出现时系统所支援的区域设置,例如

# locale -a
C
en_GB
en_GB.iso88591
en_US
en_US.iso88591
en_US.utf8
POSIX
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_TW
zh_TW.big5
zh_TW.utf8

其中en是英文,zh_ch是简体中文,zh_tw是繁体中文
首先要安装locales,命令如下

# apt-get update
# apt-get install locales
# dpkg-reconfigure locales

会到locales界面,选取你需要的locales (按空格选取或者取消)
en_GB
en_GB.iso88591
en_US
en_US.iso88591
en_US.utf8
zh_CN
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_TW
zh_TW.big5
zh_TW.utf8
(好像zh_CN GB18030编码用不了,建议不要选择,我只选了上面的几个)
然后选择zh_CN.utf8做为默认编码
完成后,用 locale -a 查看是否有显示

然后安装中文字体(可以凭个人喜好来选择)
以下是中文 (Chinese)常用字型:
ttf-arphic-uming (文鼎 PL 上海宋 Uni, AR PL ShanHeiSun Uni) -
居台德国人高盛华 (Arne Götje) 先生将多个自由字型合并的字型,包括中港台日韩中文字.
xfonts-intl-chinese
xfonts-wqy
安装字体的命令

apt-get install ttf-arphic-uming
apt-get install xfonts-intl-chinese
apt-get install xfonts-wqy

安装zhcon (我不知这是不是必要的,我装了)

apt-get install zhcon

到这最好重启一下系统再继续
重新登录后,putty应该已经可以显示中文,但是尚无法输入中文
输入命令locale

# locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE=zh_CN.GBK
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=

看到了默认的编码,如果你的和我的不一样,也许问题就在这里了:)
因为windows的中文文件都是GB2312的,而debian都是utf-8的
如果全选择utf-8,用putty建立的文件夹在索引里就会乱码
解决的办法就是使用GBK编码,如下:
编辑 /etc/default/locale 文件,将里面的内容改为

# File generated by update-locale
LANG=zh_CN.UTF-8
LANGUAGE="zh_CN:zh"
LC_CTYPE="zh_CN.GBK"

这样改就可以兼容了,避免了UTF-8和GB2312的文件转换的麻烦
然后重启系统,设置putty的字体
虽然putty可以显示中文文件,但是无法输入中文
在pytty的windows--appearance 设置带有GB2312字符集的字体即可
我选的是幼圆,嘿嘿..
然后在putty的设置 windows--translation里选择
" use font encoding "
这样进入debian后,就可以支持中文,并且输入中文,测试一下

mkdir 测试
ls

就会建立一个名为 测试 的文件夹,看看在别的地方显示是否正常
到此..结束..

如果有什么错误之处,还望您能指出,如果还有疑问,我们可以一起探讨..
谢谢:)

没有评论:

发表评论