龙空技术网

Java项目实践,开发中汉字问题的原因分析及解决方法

编程技术汇 186

前言:

此刻小伙伴们对“java运行为什么有中文乱码”大概比较关心,姐妹们都想要学习一些“java运行为什么有中文乱码”的相关内容。那么小编也在网上汇集了一些关于“java运行为什么有中文乱码””的相关内容,希望看官们能喜欢,看官们快快来了解一下吧!

这个是刚入职同事遇到的问题,问题是这样的,他周末在熟悉项目框架代码时,执行程序时发现浏览器打开JSP文件看到的中文是乱码。

用户访问JSP文件过程图

问题

项目中JSP文件同事们都在用,也没发现有汉字乱码问题,文件在开头也设置了

“<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>” ,但他的电脑上确实是乱码(同事的电脑是新装的环境),他反馈这个问题后,我可以确定项目代码一定是没问题的,100%是他电脑环境的问题。

原因分析

根据项目是大家都在用的,也用了很长时间,所以一开始就定位到是他电脑环境的问题,从开发工具到Tomcat都检查了一遍,该设置的都按要求设置好的,可问题还是没解决,在网上查了很多资料,解决方法大多都是设置正确的编码,这个是自己知道的方法。

一个简单的问题,没想到费这么大劲,最后是在一个技术论坛上发现有人遇到这个问题,问题是出在JRE上,具体原因是他电脑上的JRE版本有问题,这个是万万没想到的。

Java 运行环境 (JRE) 分英文版和国际版,但只有国际版才支持非英文字符,他电脑上装的是英文版, Java 开发工具包 (JDK) 肯定支持多国字符,问题是他不知道在哪下载的JRE,直接用的压缩包,没有自己装JDK(可能是刚刚参加工作吧),具体原因也没多问,能解决问题就好。

下面再补充一个知识点:

“ Java 源代码-> Java 字节码”,标准的 Java 编译器 javac 使用的字符集是系统默认的字符集,比如在中文 Windows 操作系统上就是 GBK ,而在 Linux 操作系统上就是ISO-8859-1,所以开发人员在 Linux 操作系统上编译的类中源文件中的中文字符都出了问题,解决的办法就是在编译的时候添加 encoding 参数,这样才能够与平台无关,用法是 javac –encoding GBK。

解决方法

把我自己JDK文件压缩一份,给他装好,设置环境变量,问题解决了;解决问题往往是找原因最难,解决方法都比较简单。

以上,是我们公司刚刚入职的同事昨天遇到的问题,我帮他解决了问题,并分析了产生的原因,在这里记录下来,帮助遇到同样问题的小伙伴们,解决方法仅供参考,有什么好的解决方法,可以评论区交流。

我是一名码龄10年的程序员,在这里会分享实在干货,让你少走弯路,成就精彩人生。

标签: #java运行为什么有中文乱码