2019独角兽企业重金招聘Python工程师标准>>>

一般的处理乱码的方式都是用:

request.setCharacterEncoding("GBK")

但是这种方法只对POST方法提交的表单才有效果。

网上资料显示:自从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。

鉴于此,提供一下三种解决方法:

1. 将GET请求改成POST请求,然后就可以使用request.setCharacterEncoding方法设置编码,并使用request.getParameter方法直接获得中文请求参数了,这种方法简单明了。

2. 不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");

3.对于GET方法,还可以通过修改Tomcat的配置来搞定。

方法如下:

在conf/server.xml里的<Connector />标签内加URIEncoding="GBK",或者是UTF-8。如:

<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="GBK"/>

对于POST方法提交的表单,上面的方法二仍然有效,个人建议使用方法二,因为方法二的代码是利用了Java的编码能力,对于所有的Web服务器都会有效,而setCharacterEncoding方法是通过Web服务器支持的,并不是所有的Web服务器都会对该方法有很好的支持。

转载于:https://my.oschina.net/huangcongcong/blog/512962

关于Servlet出现乱码问题相关推荐

  1. servlet中文乱码处理

    servlet中文乱码处理 如果是post 设置req.setCharacterEncoding("utf-8"); 如果是get,不去修改服务器配置的情况下 new String ...

  2. 页面跳转之转发和重定向+Servlet中文乱码问题

    页面跳转之转发和重定向+Servlet中文乱码问题 一.页面跳转 <?xml version="1.0" encoding="UTF-8"?> &l ...

  3. java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结

    从form表单提交信息到一个JSP页面或者一个Servlet进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???.现在通过一个例子来进行总结如下: 写一个用户信息提交页面,通过这个页 ...

  4. servlet中文乱码_10分钟快速掌握Servlet相关基础知识

    Servlet的学习路线 1. 创建Servlet 2. Servlet的相关配置 3. Servlet的生命周期 4. HttpServletRequest接口 5. HttpServletResp ...

  5. 解决使用Servlet输出乱码问题(一行代码解决一切)

    使用servlet接收表单数据后,输出出现了乱码,如下: 解决方法: 将下面这行代码粘到你重写的doGet或者doPost方法里就可以了. response.setContentType(" ...

  6. java servlet 转发和重定向_JavaWeb(一)Servlet中乱码解决与转发和重定向的区别

    前言 前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一.request请求参数出现乱码问题 1.1.get请求 1)乱码示例 get请求的参数是在u ...

  7. ajax html页面传值乱码,jQuery Ajax传值到Servlet出现乱码问题的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...

  8. mysql jsp servlet 中文乱码问题。

    google一下..你可以找一大堆解决方案..但是我觉得都没有从根本上解决问题..是不是? 我觉得要想根本解决..最主要的方法是统一编码方案..说出来很简单..原因也很简单..但你真的做到了吗.. 首 ...

  9. servlet中文乱码_Servlet入门 信息过滤

    浏览器和web服务器通信,请求是输入的信息流,响应是输出的信息流,它们走的是服务器的同一个端口.当我们想对信息流做统一处理时,可以使用端口后面的过滤器,它就是Servlet API定义的Filter接 ...

最新文章

  1. 分布式应用框架Akka快速入门
  2. Python_48re模块的sub方法
  3. 欧菲光:拟对子公司江西晶超增资9亿元
  4. 基于JAVA+SpringMVC+MYSQL的营业厅终端销售系统
  5. Cap22_信息系统安全管理
  6. html+css笔记1
  7. 序列化和反序列化(JSON、protobuf)
  8. 防骗数据库,查询骗子电话QQ等
  9. jQery 日历 带农历显示
  10. 阿里IoT套件 使用记录2 消息转发
  11. 惠普笔记本通过系统如何进入BIOS?
  12. 【招聘】极限网络全国招聘,海量岗位职等你来
  13. Eclipse初始化
  14. ip-guard如果服务器 IP 地址或机器名变更之后对客户端或控制台会有影响吗?
  15. 利用Python打造短链接服务
  16. 数据结构(C语言严版)总结
  17. html输入时提示文字消失,inpuhtml文本框代码t 初始里边有文字提示 当点击时 文字消失 怎么设置...
  18. 小雉配置--支持向上向下兼容的 配置文件 兼容性 设计
  19. numpy函数hstack,vstack,dstack简介
  20. 第三章数据链路层测试题

热门文章

  1. Spring拓展接口之FactoryBean
  2. Spring解决循环依赖
  3. Eclipse Git下载问题:Internal error; consult Eclipse error log.
  4. 环境搭建:Windows系统下Nacos集群搭建
  5. solr-4.10.3.tgz.tgz下载
  6. Flutter开发系列教程
  7. Photo Sphere Viewer 全景图
  8. 极客时间App安卓版上线,让知识获取更加简单
  9. 海量数据切分抽取的实践场景(r11笔记第43天)
  10. 使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较、同步...