servlet 解决中文乱码问题

声明:tomcat7默认iso8859-1编码,tomcat8默认就是utf-8编码,浏览器默认编码是 gbk  页面编码一般我们都会写utf-8

request获取中文参数乱码:

页面是以utf8编码提交到服务器的,而服务器(Tomcat)内
部使用Iso-8859-1进行编码,所以当我们在servlet中获取request对象的中文参数时会乱码,解决的办法有两个

1、更改服务器的编码,变为utf8,和页面提交的编码格式一致,所以数据就会正常显示   tomcat8默认就是utf-8编码

2、先用iso8859-1解码,再用utf8编码,username=new String(username.getbytes("iso8859-1"),"utf-8")

3、URLdecode-URLencode,原理同2;

4、request.setCharacterEncoding("utf-8")  仅post方式,因为只有post有请求体

=============================================我是分割线====================================================================

response向页面传递中文字符乱码问题:

1、在servlet中写的response.write写的数据全部都是iso8859-1编码,如果直接在页面解析,就需要看浏览器的解析格式,如果浏览器解码和tomcat编码一致,就可以正常解码,如果不一致就乱码

2、解决乱码可以response.setContentType("text/html,charset=utf-8"),将数据按照utf8编码,同时通知浏览器按照utf8解码。

3、也可以用response.setCharacterEncoding("utf-8"),此命令仅仅是指定数据按照utf8编码,不会限制浏览器解码方式,如果浏览器此时恰好是按照utf8解码,就不会有问题,但一般浏览器默认按照gbk解码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值