A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 郑委员 于 2018-10-11 17:59 编辑

声明: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解码

2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马