jsp到java文件过程的编码与解码

以下内容都是个人的理解,如有不对的地方,还望大家指正:

我们在eclipse中编辑jsp页面时首先会确认jsp文件本身的编码,比如有utf-8,gkb等等。一般情况下,如果在jsp的开头定义了pageEncoding的话,那么文件的编码就是pageEncoding了。

一般jsp文件的编码格式都是和pageEncoding一样的。pageEncoding决定着在jsp编译器进行编译时所使用的编码格式。

1.pageEncoding和jsp文件编码都是GBK

   拿“中”字来看一下,编辑好jsp文件后,用HexEdit查卡器可以查看到文件的十六进制编码,可以看到“中”采用GBK解码的十六进制为“D6D0”,在后台进行解码时,jsp编译器会根据pageEncoding解码,所以得到“D6D0”对应的字符“中”;在这时生成java文件时,java文件是utf-8编码,所以将“中”按照utf-8字符集的解码方式生成java文件,“中”在utf-8中的十六进制编码为“E4B8AD”,同样可以通过HexEdit来查看。

2.pageEncoding=“GBK”,文件编码为utf-8

   也拿“中”字来看。用HexEdit打开jsp文件,文件中的“中”字采用utf-8编码,为“E4B8AD”。

   这是jsp编译器还是按照pageEncoding来进行解码,在GBK字符集中,没有对应“E4B8AD”的字符,所以出现乱码字符(假如乱码字符为?)。这是再按照utf-8生成java文件时,乱码字符对应的机内码转换仍是错误的,所以jsp生成的java文件中就会出现乱码。java文件乱码,javac按照Utf-8》utf-8转换时,仍然是乱码。所以web服务器最终返回的页面显示为乱码。

以上都是个人理解,实验的结果是这样的,或许不正确,望指正!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值