今天开发人员说,新部署的weblogic系统生成的xml文件发布出来中文是乱码。经检查发现如下:
1.3台weblogic集群的机器都有同样的问题。
2.而原有系统上的xml文件正常。
3.将此乱码文件ftp下来直接用文本编辑器打开,中文能正常显示。
4.将原来服务器的xml文件ftp到新的服务器上,也正常。
5.将新服务器上有问题的xml传到原来的服务器,不能正常解析。
6.新旧服务器上xml文件的内容一致
感觉可能是xml文件生成时出的问题,可能是新旧服务器上xml文件的字符集不同。
旧服务器上
[root@test1 ~]# 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=
而在新服务器上
[root@bbs ~]# locale
LANG=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL=
怎么没有了utf8了呢???
检查i18n,发现新旧机器上都是 LANG=zh_CN.UTF-8
修改新机器的i18n,发现不管改成什么,都不起作用。怀疑是i18n后别的地方又设置了LANG
1.检查用户目录下的profile,没有发现
2.检查/etc/profile发现:它依次去执行/etc/profile.d目录下的脚本.检查这些脚本,发现其中有个lang.sh脚本读取了i18n的设置;继续检查profile脚本,结果在脚本最后发现了如下:
LANG=c
LANG=zh_CN
注释掉这两行,系统终于正常了.
shit,某些人随便修改/etc/profile造成的问题.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32939/viewspace-564898/
,如需转载,请注明出处,否则将追究法律责任。