不管什么原因吧,根本原因还是修改了linux系统本身的编码,改回来就完了。
修改全部配置文件
末尾增加两行
让其生效
如果你的web 服务器输出的日志都是乱码,那么最后一步:
你本地和LINUX的编码不一致所导致的乱码解决如下:
1、设置request的编码 new String(request.getParameter("参数名").getBytes("iso-8859-1"), "gbk")
将默认的iso-8859-1转为gbk 不行的话就多换几种编码
2、设置LINUX的编码
命令行敲入:vi /etc/sysconfig/i18n 修改为以下内容
#LANG="zh_CN.UTF-8"
#SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
#SYSFONT="latarcyrheb-sun16"
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
export LC_ALL="zh_CN.GB18030"
建议如上 不喜勿喷
哎,又是一群不考虑编码问题的XXOO啊……Windows 是分语言版本使用不同的编码,也就是英文版和中文版内部编码不一样。但其实他内部处理用的还是一个统一编码,但是在程序处理编码时,他会自动转换。给你的感觉是不需要编码转换。
Linux 现在是内部统一使用 UTF8 编码,而且没有自动转换的功能。Linux 下面所有程序默认都应该使用 UTF-8 编码,如果遇到编码问题,程序应该自己在读取数据后马上转换编码,自己继续用 UTF8 进行处理,在输出时需要转换编码时,再自己进行转换。也就是程序处理的和系统内部处理的都是 UTF8 。
JAVA 就是基于这个方式工作的,但 JAVA 因为是一个解释型语言,他默认把所有读取进来的工程文件也都直接认为是 UTF8 ,如果你开发时没有设置默认编码为 UTF8 ,那么在 Windows 下面,你的所有工程文件,都默认是 GB18030 。JAVA 把 GB18030 的内容当作 UTF8 处理当然会出问题。
只能说你们这群开发应该集体扣工资。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)