Java程序员遇上字符乱码16-jsp文件编码和pageEncoding

jsp文件编码和pageEncoding 的不一致,会影响jsp解析引擎对jsp文件的解析,从而导致乱码。下面我们 从 IDE开发环境 和 非 IDE开发环境 两种情况说说。其中真的有好多“坑人的猫腻”。

1) 非IDE开发

初学j2ee开发,老师们都是建议自己从零开始创建文件、文件目录来搭项目文件结构。

假如我们使用windowsOS 并且 OS默认编码是GBK,也即当我们手动创建一个JSP文件(名 为index.jsp)时,此文件的编码格式是GBK的。

我们会继续照着手中的教科书的案例中写jsp代码:

Java程序员遇上字符乱码16-jsp文件编码和pageEncoding_第1张图片

然而书中的案例中,pageEncoding="UTF-8"。当我们启动tomcat并访问,会发现:中文乱码 !!

上面的情景,是大多数初学者都会遇到的。乱码的原因在于,小白没有理解 pageEncoding 的作用。

pageEncoding="UTF-8",意思是告诉tomcat中的jsp解析引擎“这个文件内容都是 utf-8 编码格式的”,jsp引擎读入文件后解析时,中文部分的字节序列由于不符合utf-8的格式规律又再被强制转码成内码utf-16,当然最后就不成样了(乱码)。

因此,jsp文件的格式 务必要 跟 pageEncoding值 一致。

2) IDE开发环境

IDE,拿 Ideaj 作为例子。

当我们在Ideaj中 建立项目和jsp文件,智能的Ideaj 会 偷偷帮我们做好多事情,文件编码转换  就是其中一个。

jsp文件中,当我们 pageEncoding = utf-8 ,Ideaj会立马识别并将此jsp文件转化成utf-8。同样,当我们 pageEncoding = GBK ,Ideaj也会立马识别并将此jsp文件转化成GBK 。

坑爹的是,这些Ideaj偷偷地行为,我们非常难发现!于是就使劲 在网上查询,套遍了网上的道理,还是无法找到根本的解决方法。如此久了,真的被坑到怀疑人生。

不过虽说IDE的“偷偷摸摸”让我们迷糊。可是不得不否认IDE真的帮我们解决了好多繁琐事情。

其实,我们学习程序消耗的时间有很大部分是浪费在这些排查上,这也是我写这系列博文的缘由。

你可能感兴趣的:(Java程序员遇上字符乱码16-jsp文件编码和pageEncoding)