HttpServletResponse中获取PrintWriter需要注意的一个小问题

写过servlet的人都知道,可以通过HttpServletResponse中的getWriter方法获取对客户端的输出流,但是如果在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。这样就会造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。比如:
 
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=utf-8");
out = resp.getWriter();
 
这样用out输出中文的时候肯定会是乱码的,而且即便你在下面再获取一次getWriter(红色地方),此时的PrintWriter也不会是utf8编码的PrintWriter。 正确的写法应该是:
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();

这样的。



博文源自:http://blog.csdn.net/hikvision_java_gyh/article/details/9852901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值