GET POST乱码解决
来源:互联网 发布:c语言编程软件win10 编辑:程序博客网 时间:2024/05/18 01:46
一般说来在每个页面的开始处,都会加入:
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
contentType=”text/html;charset=UTF-8”的作用是指定对服务器响应进行重新编码的编码
pageEncoding=”UTF-8” 是讲jsp编译成servlet时的编码 ;
简单用一个图来说明一下http请求的流程:
第一步:浏览器把URL经过编码送给服务器;
第二步:服务器把这些请求解码处理完毕之后将显示的内容进行编码发送给客户端浏览器;
第三步:浏览器按照指定的编码显示网页
详细剖析GET提交如何编码以及服务器如何解码以及乱码解决方案
对于GET方式,我们知道它的提交是将请求数据附加到URL后面作为参数,这样依赖乱码就会很容易出现,因为数据name和value很有可能就是传递的为非ASCII码。
当URL拼接后,浏览器对其进行encode,然后发送到服务器。具体规则见URL编码规则。
tomcat服务器在进行解码过程中URIEncoding就起到作用了。tomcat服务器会根据设置的URIEncoding来进行解码,如果没有设置则会使用默认的ISO-8859-1来解码。假如我们在页面将编码设置为UTF-8,而URIEncoding设置的不是或者没有设置,那么服务器进行解码时就会产生乱码。这个时候我们一般可以通过new String(request.getParameter(“name”).getBytes(“iso-8859-1”),”utf-8”) 的形式来获取正确数据。
(服务器的编码方式: tomcat 设置中
<Connector port=”8080”protocol=”HTTP/1.1” maxThreads=”150” connectionTimeout=”20000”
redirectPort=”8443”URIEncoding=”客户端编码”/> 默认是iso-8859-1
),服务器获取的数据都是ASCII范围内的请求头字符,其中请求URL里面带有参数数据,如果是中文或特殊字符,那么encode后的%XY(编码规则中的十六进制数)通过request.setCharacterEncoding()是不管用的。这时候我们就能发现出现乱码的根本原因就是客户端一般是通过用UTF-8或GBK等对数据进行encode的,到了服务器却用iso-8859-1方式decoder显然不行。
第一种:在服务器xml代码中改配置信息:
<Connector port=”8080”protocol=”HTTP/1.1” maxThreads=”150” connectionTimeout=”20000”
redirectPort=”8443”URIEncoding=”客户端编码”/> ps: 将服务器与客户端的编码方式统一 客户端不同的浏览器 编码方式不一样
第二种:
设置 URLEncoder.encode(“中文”,”UTF-8”) 将要传递的参数utf-8 编码 将其变为字节码 ,这样不管各浏览器怎样对中文参数进行处理,此时经过我们编码后的中文对浏览器来说就是字节码,与a、b、c等字母没有什么区别。 只要在服务器的用”UTF-8”解码 就能得到正确的中文;
详细剖析POST提交如何编码以及服务器如何解码以及乱码解决方案
对于POST方式,它采用的编码也是由页面来决定的即ContentType(“text/html; charset=GBK”)。当我通过点击页面的submit按钮来提交表单时,浏览器首先会根据ontentType的charset编码格式来对POST表单的参数进行编码然后提交给服务器,在服务器端同样也是用contentType中设置的字符集来进行解码(这里与get方式就不同了),这就是通过POST表单提交的参数一般而言都不会出现乱码问题。当然这个字符集编码我们是可以自己设定的:request.setCharacterEncoding(charset)设置编码,然后通过
request.getParameter获得正确的数据。
- GET POST乱码解决
- post/get解决中文乱码
- post乱码、get乱码问题如何解决?
- 解决Post和Get乱码问题
- GET&POST方式解决中文乱码问题
- get post 中文请求乱码解决方式
- 解决 post和get请求乱码
- SpringMVC中post、get乱码解决
- 解决post和get乱码过滤器
- post和get请求乱码解决
- springmvc GET POST请求乱码解决
- 解决get和post请求 全部乱码
- 解决post、get提交中文乱码问题
- springMVC解决GET与POST乱码
- springMVC解决post、get中文乱码
- 黑马程序员 jsp乱码,sevlet乱码,struts乱码,tomcat乱码,get乱码,post乱码 解决方式
- get请求和post的请求的乱码解决
- Post与Get提交使用过滤器解决中文乱码问题
- Vue框架中添加百度地图组件
- Oracle数据库归档日志满后造成系统宕机解决一例
- mysql中文乱码亲测有用
- JavaScript 22 无间断滚动
- 习题5.8
- GET POST乱码解决
- hello word!
- MySQL主从复制
- 致JAVA编程的初学者,环境变量的相关问题。
- Linux入门基本指令
- ROS学习笔记(一)
- Spring——AOP拦截Controller将异常信息抛给浏览器
- Dijkstra求最短路的条数,并输出最短路径和最短路经过的点的最大和
- 十一、文件系统