Servlet中文乱码问题!

用servlet写小程序时遇到了中文乱码问题,在网上找到的答案千篇一律;基本都是要在方法中设置     

 

response.setCharacterEncoding("utf-8");  
response.setContentType("text/html;charset=UTF-8"); 

然而不管我设置成什么编码都是乱码的,输出???

设置如下:

		PrintWriter out = response.getWriter();
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		request.setCharacterEncoding("utf-8");


用浏览器的抓包工具一看是这样的,注意响应头中的Content-Type:


 

说明前面的设置根本没起作用,我甚至都怀疑是系统的原因了,但是用jsp页面来写的话完全没有问题啊!

但是一个偶然的操作居然解决了这个问题:

		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=UTF-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
似乎看上去和上面的设置没多大差别,但是请注意这几行的 顺序!!!再看看响应头:

字符集设置成功!

总结:在servlet中输出中文,如果用到PrintWriter方式,必须在调用getPrintWriter()前使用setContentType() 或者 setCharacterEncoding()!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值