首页 » my » 正文

ubuntu server 编码问题

今天在部署项目的时候遇到个很郁闷的问题,两个系统中通过xml-rpc传输的中文数据,在我们的测试平台上没有任何问题,测试平台的软件环境跟正式服务器上的环境都是一模一样的。郁闷啊。

经过调试发现,从服务器端传输的数据在生成XML-RPC数据之前就已经变成问号了,查看服务器上的编码设置

sudo locale

输出所有的值都是“C”

看样是服务器的编码设置问题了。

修改/etc/environment文件,添加:

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh:en_US:en"

然后重启机器。

问题依旧,中文还是问号,使用locale查看,所有输出的值还是C,这就奇怪了,明明设置了编码,怎么还是不对呢?

忽然想起当前用户下还有个配置文件/root/.profile,打开一看,LANG=C.

原来如此啊,将LANG与LANGUAGE两个参数设置跟/etc/environment文件里一样,注销后重新登录,问题解决。

ubuntu读取配置文件的顺利是先读/etc/environment,再读$HOME/.profile中的配置,因为.profile中的配置覆盖了environment中的配置,所以出现了乱码问题。