POST 方式下的解决方式还算简单,因为POST 方式下提交的数据都是以二进制的方式附加在http请求的body部分发送,只需要在后台指定编码格式就足矣解决。

GET 方式下会将参数直接附加到url 后面,这部分参数无法使用request.setCharacterEncoding()处理,结果就是get形式的所有中文都变成了乱码。

这时再也没有简便方法了,只能对这些中文一个一个进行转换,使用new String(bytes, "gb2312")进行转码。

<%
String username = request.getParameter("username");
byte[] bytes = username.getBytes("iso-8859-1");
String result = new String(bytes, "gb2312");
out.print(result);
%>

如我们所见,先从request 中获得参数,接着把字符串按照iso-8859-1编码打散成byte 数组,然后用 gb2312编码组合成新字符串,最后打印出来就是正常的
中文了。

写在一起就变成了:

<%=new String(new
String(request.getParameter("username").getBytes("iso-8859-1"),
"gb2312")%>

这样做的缺点,是从请求中取得的所有中文都需要转码,非常烦琐。

所以大家千万不要像这样<a href="test.jsp?username=测试">测试</a>,把中文参数写到超链接中,form尽量使用method="POST",这样只需要设置
request.setCharacterEncoding()就可以应付中文乱码问题。

最新文章

  1. css text-fill-color与text-stroke讲解
  2. splay最终模板
  3. __new__方法
  4. 关于 DWZ 弹出框
  5. JAVA 嵌套类和内部类
  6. netty 学习
  7. MongoDB分片简单实例
  8. Wordnet 与 Hownet 比较
  9. PhoneGap与Jquery Mobile结合开发android应用配置
  10. shell/bash 让vi/vim显示空格,及tab字符
  11. DllImport属性详解
  12. ZOJ-3720 Magnet Darts 计算几何,概率
  13. windows下Apache配置SSL安全连接
  14. 数据结构(树状数组):HEOI2012 采花
  15. 采购IC应该知道的十大网站
  16. C#微信公众号开发——错误一
  17. 2017-12-26--mysql(5.6.15),linux下安装使用
  18. 20175236 2018-2019-2 《Java程序设计》第四周学习总结
  19. jQuery常见案例
  20. python3.6.5 路径处理与规范化

热门文章

  1. CodeForces - 946D Timetable (分组背包+思维)
  2. jQuery 批量操作checkbox
  3. python-正则表达式练习题
  4. php array 根据value获取key,in_array()判断是否在数组内实例
  5. DNS正反向区域解析(二)
  6. JQuery判断input是否被禁用
  7. amin例子的简单研究
  8. ubuntu下git clone 提速
  9. 【第四章】 springboot + swagger
  10. Unity3D学习笔记(三):V3、运动、帧率、OnGUI