我没配置过滤器也没有乱码

我没配置过滤器也没有乱码

想问一下老师    字符编码是怎么一回事为什么你就会乱码    它是由什么决定的呢   

从javaweb入门开始就有这个问题了一直想不通

对我来说完全不需要过滤器

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

对于POST方式,它采用的编码是由页面来决定的即ContentType("text/html; charset=GBK")。当通过点击页面的submit按钮来提交表单时,浏览器首先会根据ContentType的charset编码格式来对POST表单的参数进行编码然后提交给服务器,在服务器端同样也是用ContentType中设置的字符集来进行解码。当然这个字符集编码我们是可以自己设定的:request.setCharacterEncoding(charset)设置编码,然后通过request.getParameter获得正确的数据。jsp以GET方式向Servlet提交的时候,可能不会出现乱码

对jsp向另外一个jsp提交参数时,GET提交容易产生乱码(当然tomcat8以后,tomcat对这个问题进行了改进处理,不会出现这个问题),例如用get提交的方法,在url后边拼接参数userName是中文时,接收的页面一般需要用下边的语句处理。

String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码

乱码的原因有很多,可能其他原因也会造成乱码,虽然有时不会乱码,但为了安全起见,建议同学设置编码过滤器。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • luyuni 提问者 #1
    mark 谢谢老师~
    2018-12-20 10:27:06
chrismorgen 2018-12-19 11:06:17

你好,可以这么理解:

1、在jsp页面设置字符编码格式为utf-8,是为了让jsp页面的中文能够正常显示。

2、统一字符编码格式是统一请求中参数的字符编码格式,所以要用到过滤器,将请求中的字符编码格式设置为utf-8,这么做的目的是为了防止前端页面在向后台传递参数时,出现乱码的现象,祝学习愉快~

  • 提问者 luyuni #1
    不是呢 我并没有设置request.setCharacterEncoding("utf-8") 也没有乱码呢,所以我想知道哪里决定传输的字符编码呢
    2018-12-19 22:28:06
  • 提问者 luyuni #2
    而且老师配置的jsp页面是utf-8传输的也乱码了, 我想知道的是request这个对象携带的请求参数之类的字符编码是哪里决定的我感觉你没有回答到我的问题,可能是我没有说的太明白
    2018-12-19 22:58:01
提问者 luyuni 2018-12-18 19:51:27

而且老师的jsp页面的jsp编码也是utf8呀   为什么你就乱码了我却没有   

  • 提问者 luyuni #1
    字符编码 打错了
    2018-12-18 19:51:53
提问者 luyuni 2018-12-18 19:46:31

其实我想问统一编码统一的是什么呀?   java里面要接收的字符编码哪里看   这个字符编码问题我怎么都想不太明白    老师能帮我梳理一下吗

提问者 luyuni 2018-12-18 19:40:52

是page标签决定的  我刚刚试了一下去掉   乱码了哈哈哈

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师