GET和POST提交乱码解决方案

【Qt】URL编解码 QByteArray URL编码与解码 阅读详情

GET和POST提交乱码解决方案

写在开头:

一般说来在每个页面的开始处,都会加入:

<%@ 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获得正确的数据。

Qt进行UrlEncode/UrlDecode(URL编码/解码) 为了让包含中文的 URL 可以使用,需要进行 UrlEncode 编码。Java 中有现成的类库可以使用,其实我们 Qt 进行网络编程时,框架中也带了 UrlEncode 的功能。 阅读详情

相关推荐

从翼型到湍流:用生活化案例图解空气动力学核心概念(中英双语版)

本文通过飞机机翼、F1赛车、高尔夫球等生活化案例,图解空气动力学核心概念。深入浅出地解释了攻角如何产生升力、边界层与流动分离如何影响阻力、马赫数如何划分速度世界,以及涡流与湍流的特性与应用。文章还介绍了计算流体动力学(CFD)这一现代数字风洞工具,帮助读者直观理解这些塑造现代交通与运动设计的无形之力。

metaverse5vr的博客 475

http请求中文参数乱码

对于做后端的朋友来说,httpPost请求用的非常多,在参数传递过程中,中文参数乱码情况经常出现,有时很让我们头疼。最近解决了一些实际工作中的参数乱码问题后,我也做了些总结,现分享给大家。 以HttpClient为例,常见的传参方式有: 1、UrlEncodedFormEntity,如下面代码片段: nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("name", "张三")); nvps.add

liuyunyihao的博客 7686

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 301

HTTP请求与响应参数中文乱码问题

HTTP请求与响应参数中文乱码问题

m0_54435916的博客 8749

RPG MV游戏数据修改指南:从JSON解析到脚本进阶

游戏数据修改是游戏开发与逆向工程中的常见实践,其核心原理在于解析和操作游戏资源文件。许多现代游戏引擎采用结构化数据格式(如JSON)存储游戏配置,这为外部修改提供了可能。通过理解文件结构、数据格式与游戏逻辑的关联,开发者或爱好者可以调整游戏平衡、修复问题或实现个性化定制,这不仅能深化对游戏设计机制的理解,也具备实际的技术学习价值。本文以基于Web技术栈的RPG Maker MV(RPG MV)引擎为例,其游戏数据多以明文JSON存储,结构清晰。文章将具体阐述如何安全地修改角色属性、物品效果、敌人数据及技能公

weixin_29001419的博客 407

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 441

【JavaWeb】Http get请求乱码、post请求乱码,html页面乱码、jsp页面乱码,控制台tomcat日志乱码原因分析和解决方案

参考: 【JavaWeb开发】Servlet彻底解决开发中请求(get/post)、应答以及控制台中文乱码问题

【小石头的茅坑】 72万+

泛微系统流程表单获取节点操作者

泛微系统流程表单获取节点操作者 select typename 流程类型, workflowname 流程名称, nodename 节点名称, (case when nodetype=0 then '创建' when nodetype=1 then '审批' when nodetype=2 then '提交' when nodetype=3 then '归档' else '' end) as 节点类型, groupname 节点操作组, (case when type=1 then '部门+安

烧硬盘 4616

GET和POST提交乱码解决方案(转载)

链接:https://www.cnblogs.com/super-z/p/6230119.html 写在开头: 一般说来在每个页面的开始处,都会加入: &lt;%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%&gt; contentType="text/html;...

qq_38056704的博客 205

100天精通Python(可视化篇)——第109天:Pyecharts绘制各种常用地图(参数说明+代码实战)

100天精通Python(可视化篇)——第109天:Pyecharts绘制各种常用地图(参数说明+代码实战)

努力让自己发光,对的人才能迎着光而来 8万+

使用Microsoft Print to PDF进行编程:创建PDF文件的简单方法

Microsoft Print to PDF是一种内置于Windows操作系统中的功能,它允许我们通过打印操作将任何可打印的内容保存为PDF文件。然后,我们使用Microsoft Print to PDF打印机进行打印操作,并将输出文件保存为指定的PDF文件。使用Microsoft Print to PDF功能是一种方便且简单的方法来创建PDF文件,无论是在个人使用还是在企业开发中,它都可以提供良好的支持和灵活性。请注意,如果你使用的是其他编程语言,你可以根据相应的打印机接口或库来实现类似的功能。

TechSavant的博客 1635

详细剖析GET/POST提交如何编码以及服务器如何解码以及乱码解决方案

GET方式提交出现乱码 对于GET方式,我们知道它的提交是将请求数据附加到URL后面作为参数,这样依赖乱码就会很容易出现,因为数据name和value很有可能就是传递的为非ASCII码。 当URL拼接后,浏览器对其进行encode,然后发送到服务器。具体规则百度URL编码规则。 这里详细说一下encode的过程中容易出现的问题,在这个过程中我们要明白需要URL encode的字符一般

u010743716的专栏 2516

Win10或Win11电脑找不到以太网网络适配器的解决方法

Win10或Win11电脑找不到以太网网络适配器的解决方法

Robot_PLC_HMI_Automation 656

jsp 提交表单乱码解决方案(post/get)

jsp 提交表单乱码解决方案(post/get)

qq_38472465的博客 178

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

get和post方式提交中文乱码问题解决方案

【出现乱码的原因】 首先无论使用get方式提交,还是post方式提交,如果参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码,如果浏览器提交数据的编码和服务器接收数据的编码格式不一致,那么就有可能产生中文乱码。在ie中可以通过菜单栏--查看---编码查看编码格式。【post方式提交乱码解决方法】 对于表单中POST方式...

weixin_34209851的博客 1095

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

URL编码以及GET和POST提交乱码解决方案

1. 什么是URL编码。 URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上。 2. URL编码规则。 每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。 URL编码

John的专栏 553

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java http url post encode出现乱码_URL编码以及GET和POST提交乱码解决方案

1. 什么是URL编码。URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上。2. URL编码规则。每对name/value由&分开,每对来自表单的name/value用=分开。如果用户没有输入值的那个name依旧会出现不过就是没有值。URL编码是在字符ASCII...

weixin_34270705的博客 1324
上一篇: bootstrap中input添加.form-control类有何作用?
下一篇: 提交表单 将数据由gb2312改为utf-8 POST提交表单乱码问题
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值