问题
- 服务器中文无法显示;
- python的项目的日志中含有中文,无法写入;
- 在命令行下,执行:locale命令,显示如下的信息:
LANG=C
LC_CTYPE= "C"
LC_NUMERIC= "C"
LC_TIME= "C"
LC_COLLATE= "C"
LC_MONETARY= "C"
LC_MESSAGES= "C"
LC_ALL=C
分析
- 该服务器不支持中文字符集;
- 系统的默认字符集也不正确;
解决方案
- 安装中文字符集;
安装步骤:
- 在命令行下执行yasts(由于没有图形界面,字符界面下执行),注意,建议使用putty工具,用securecrt会有控制上的问题:
- 'system(系统)'选择'languages(语言)'
- 安装'简体中文'为第二语言
- 将'primary language(主要语言)'设置为'简体中文'
- 系统会提示需要安装缺失的包(大概有200多个)
- 注意:系统自带的tecent的opensuse13.2的源已经失效,需要配置13.2官方的源(163等源都已经没有13.2)的了
- 用以下的命令增加源(只有两个了,update已经失效):
zypper ar -f http://download.opensuse.org/distribution/13.2/repo/oss/ openSUSE-13.2-Oss-opensuse
zypper ar -f http://download.opensuse.org/distribution/13.2/repo/non-oss/ openSUSE-13.2-Non-Oss-opensuse
- 刷新源:
zypper ref
- 然后即可继续安装中文支持
- 安装完成后重启机器
- 设定系统的默认字符集
- 修改opensuse的启动脚本
脚本的启动顺序如下:
使用用户1登陆的话。环境变量加载顺序为:
etc/profile ---> etc/bash.bashrc ----> 用户1/.bashrc ----> 用户1/.profile
- 增加默认字符集设定,在/ete/profile文件中增加两行:
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
- 重启服务器,并查看默认字符集,执行: 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.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"
- 至此,修改完成,此服务器可以支持中文.
补充说明:
- 腾讯云的默认的opensuse服务器不大完善,没有中文支持,13.2的源也不能用了;