jsp / get 中文乱码问题
2024-08-25 22:34:47
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()就可以应付中文乱码问题。
最新文章
- css text-fill-color与text-stroke讲解
- splay最终模板
- __new__方法
- 关于 DWZ 弹出框
- JAVA 嵌套类和内部类
- netty 学习
- MongoDB分片简单实例
- Wordnet 与 Hownet 比较
- PhoneGap与Jquery Mobile结合开发android应用配置
- shell/bash 让vi/vim显示空格,及tab字符
- DllImport属性详解
- ZOJ-3720 Magnet Darts 计算几何,概率
- windows下Apache配置SSL安全连接
- 数据结构(树状数组):HEOI2012 采花
- 采购IC应该知道的十大网站
- C#微信公众号开发——错误一
- 2017-12-26--mysql(5.6.15),linux下安装使用
- 20175236 2018-2019-2 《Java程序设计》第四周学习总结
- jQuery常见案例
- python3.6.5 路径处理与规范化