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解码
发布了946 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/heima201907/article/details/105286256
今日推荐