jsp实验4.(1)表单提交内容的编码

一个用GB2312编码的程序S.jsp提交给用GB2312编码的程序T.jsp时会出现编码错误,修改T.jsp,使得编码正确。

输入四个汉字,结果如下:


S.jsp代码如下:

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GB2312" 
contentType="text/html;charset=GB2312"%>
<!DOCTYPE  html>
<html  lang="zh-cn">
<head>
<title>Encoding</title>
</head>
<body>
  <h1>Encoding</h1>
  <form action="T.jsp" method="post">
    姓名:<input type="text" name="username" value="">
         <input type="submit" value="提交">
  </form>
</body>
</html>
T.jsp代码如下:

<%@ page language="java" pageEncoding="GB2312" import="java.util.*,java.io.*"
contentType="text/html;charset=GB2312"%>
<!DOCTYPE  html>
<html  lang="zh-cn">
<head>
<title>Decoding</title>
</head>
<body>
  <h1>Decoding</h1>
  <% 
  	// 错误版本:
  	// String s = request.getParameter("username");
    /*------------正确版本---------------*/
     String s = request.getParameter("username"); 
  	 byte[] bs = s.getBytes("iso-8859-1");
  	 String s2 = new String(bs,"GB2312");
  %>
  <%=s%>
</body>
</html>

这样修改的原因:request.get得到的是默认采用ISO标准编码,需要先通过ISO标准解码,最后再进行GB2312解码才能得到原来的字符串。

解释出错画面中出现的字符个数。

GB2312编码中一个汉字占用了2个字节,而后来又运用ISO编码,ISO是单字节编码的,所以会把一个汉字的GB2312编码拆开成21字节的字符,所以最后可以看到8个字符。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值