这个问题困扰了我很久,今天就来探索探索。

【页面乱码】

  浏览器的默认编码格式和你的jsp中的编码格式不统一造成的。假如你的jsp的头编码设置为utf-8,但是浏览器设置的是gbk,就会乱码。

【post方式乱码】

  post提交表单乱码比较好解决,在request.getParameter("name");前加上一行request.setCharacterEncoding("utf-8");就可以解决问题。但是这个对于get方式的乱码却没有作用。post方式的表单是作为request body的一部分发送给服务器的,浏览器会根据ContentType("text/html; charset=GBK")来编码发送给服务器。也就是说设置request.setCharacterEncoding("value");这里的value的值和jsp或者html的指定编码方式相同就可以了。

【get方式乱码】 

  get请求先从客户端(浏览器)发送到服务器,这个过程中,通常伴随着url访问,我们的参数就会被浏览器拼接到url后面,编码方式为浏览器默认的编码。所以有时候你看到?%1c%2b%3d这种就是你的浏览器不是utf-8,如果你的浏览器默认编码为utf-8?后面就会是中文。

  浏览器,后台jsp编码都是utf-8不会出现get乱码

  • 第一种方法:在服务器端处理

String bname = request.getParameter("bname"); 
bname = new String(bname .getBytes("iso8859-1"),"utf-8");
 
前提是你页面编码就是utf-8,如果是gbk,那上面那句代码后面就改成gbk。

  • 第二种方法修改server.xml文件

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/> 

添加URIEncoding="UTF-8" useBodyEncodingForURI="true"

  

request接受表单数据中文乱码问题分析的更多相关文章

  1. form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

    form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决 一.问题: 页面输入框中的中文内容,在后台乱码,导致搜索功能失效:(详细可以见后面的重现) 二.原因: 浏览器对于数据的默认编码格式为 ...

  2. 使用jsp内置对象request获取表单提交中文内容乱码的解决办法

    page1.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

  3. Java Web开发总结(三) —— request接收表单提交中文参数乱码问题

    1.以POST方式提交表单中文参数的乱码问题 <%@ page language="java" import="java.util.*" pageEnco ...

  4. JSP表单提交中文乱码解决方案

    分2种提交方式,解决方案不同: 1.form表单提交方式为get 乱码: 解决方案: 因为get方法是参数在URL中显示,因为tomcat的URL编码默认是:IOS-8859-1所以要么改tomcat ...

  5. SSH中post提交表单action中文乱码问题

    我的问题对应的解决方案是:web.xml中filter的顺序问题[置顶].需要将编码过滤器放置在所有过滤器之前. 在解决这个问题途中学习到的东西: 解决方案总结(post中文乱码): 前后台编码方式一 ...

  6. 通过重写request.getParameter方法来解决中文乱码问题。

    在原生servlet的商城项目中,BeanUtils.populate方法封装不上注册的参数. 已知BeanUtils.populate方法是封装不上date对象的,于是自定义了一个转换器用来封装Da ...

  7. request.getParameter()及解决数据库中文乱码问题——实习第七天

    今天老师让我们自己做一个小项目,我开始着手于实现这个小项目.途中遇到过几个小问题,在此做个小记录, 相信后期还是会借鉴的. 1,从前台传入数据给后台传入数据,并没有传入成功: 输出的为Null. 当然 ...

  8. TimesTen数据库表中显示中文乱码的真正原因

    上一篇博客TimesTen中文乱码问题(其实是cmd.exe中文乱码)的内容可能不对,也许只是个巧合?不得而知了.因为我今天重装系统了,把win10换成了win7(64bit).又安装了timeste ...

  9. Hive(五)数据类型与库表操作以及中文乱码

    一.数据类型 1.基本数据类型 Hive 支持关系型数据中大多数基本数据类型 类型 描述 示例 boolean true/false TRUE tinyint 1字节的有符号整数 -128~127 1 ...

随机推荐

  1. 【亲测】在网页上查找接口,Network--XHR,出来的每个Name都是后台的一个接口

  2. 性能测试day03_前端分析调优思路

    刚刚看到有人支持我写的博客,表示还是比较感动的,发现热心的用户在我的博客留言说“一个系统每天有200万在线用户,问我怎么设计性能场景?”,其实这个问题呢就属于业务没理清,这个问题就像我问你,一个城市一 ...

  3. python3 kmp 字符串匹配

    先声明,本人菜鸟一个,写博客是为了记录学习的过程,以及自己的理解和心得,可能有的地方写的不好,希望大神指出... 抛出问题 给定一个文本串test_str(被匹配的字符串)和模式串pat_str(需要 ...

  4. java 错误

    ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 解决在程序最后加一条语句system. ...

  5. 3.1链表----链表(Linked List)入门

    在分析链表之前,我们先来对之前的动态数组.栈.队列总结一下: (1)底层依托于静态数组 (2)依靠resize解决固定容量问题 (3)是一种假的的动态数据结构 1.什么是链表 可以从以下两个部分来理解 ...

  6. IDEA run下output标签悬浮/弹出状态

    就是这样,在哪儿有一个恢复布局标签

  7. SpringMVC 请求全过程漫谈

    SpringMVC 请求全过程漫谈 SpringMVC 跟其他的mvc框架一样,如 struts,webwork, 本质上都是 将一个 http 请求(request)进行各种处理, 然后返回resp ...

  8. gopath环境变量设置

    #在国内镜像下载二进制包 wget -c  http://www.golangtc.com/static/go/go1.4.1.linux-amd64.tar.gz tar -C /usr/local ...

  9. Unity 获取指定资源目录下的所有文件

    string path="Assets";//Assets/Scenes if(Directory.Exists(path)){ var dirctory=new Director ...

  10. Keepalived+MySQL实现高可用

    MySQL的高可用方案有很多,比如Cluster,MMM,MHA,DRBD等,这些都比较复杂,我前面的文章也有介绍.最近Oracle官方也推出了Fabric.有时我们不需要这么复杂的环境,这些方案各有 ...