【servlet学习之】乱码问题

解决servlet/jsp中乱码问题:
1.  request.setCharacterEncoding("utf-8")
这种方式解决的是消息体中的中文编解码问题;
post方式参数存放在请求数据包的消息体中。
故如果表单以post方式提交到服务器端,表单中包含中文,通过这种方式来解决乱码问题;
这句话应该位于request.getParameter("参数名")之前。

对于通过URL地址栏传递来的中文,不能解决乱码问题;


2. 如何解决get请求中URL中文乱码问题呢?
get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&parame2=value2的形式附加在URI字段之后。
故可以手动的添加请求参数。对于这类乱码问题,可以通过如下方式解决:
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

3. pageEncoding="UTF-8"
通常位于jsp页面的第一行,它的作用是设置JSP编译成Servlet时使用的编码。

4.  response.setCharacterEncoding("UTF-8")
作用是指定对服务器响应进行重新编码的编码。服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。 
可以在浏览器端设置成对应的解码字符集,这样就能解决浏览器乱码问题。
在调用response.getWriter().write("中文数据")之前,写上这句话。

5. response.setContentType("text/html; charset=utf-8")
告诉浏览器,得到的响应内容应视为text/html类型,所用编码为utf-8,浏览器自动就以对应的字符集来解码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值