linux解决中文乱码问题

linux解决中文乱码问题,第1张

有时候linux服务器突然间查看日志都是中文乱码,原因很奇怪,有可能是:

不管什么原因吧,根本原因还是修改了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 处理当然会出问题。

只能说你们这群开发应该集体扣工资。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6241920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存