`
mmclxq
  • 浏览: 6436 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

encodeURI两次原因

    博客分类:
  • js
阅读更多

      如果因为项目需要,不能指定容器(web服务器)使用何种编码规则来解码提交的参数, 比如:需要接收来自不同页面,不地编码的参数内容时。 (又或者是开发人员被这有点复杂的东东搞得晕头转向,不懂得如何正确的去做好这接收参数的工作)这个时候,在客户端对参数进行二次编码,可以有效的避开提交多字节字符”的这个棘手问题。
因为第一次编码,你的参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。(这里把编第一次的结果叫成 [STR_ENC1] 好了。[STR_ENC1] 是不带有多字节字符的)再编一次后,提交,接收时容器自动解一次 (容器自动解的这一次,不管是按 GBK 还是 UTF-8 还是 ISO-8859-1 都好,都能够正确的得到 [STR_ENC1])
然后,再在程序中实现一次 decodeURIComponent (Java中通常使用 java.net.URLDecoder(***, "UTF-8")) 就可以得到想提交的参数的原值。

分享到:
评论
1 楼 tengfeineu 2012-03-19  
说的不明不白

相关推荐

    Ajax传递中文参数到后台乱码的有效解决方法

    使用Ajax传递中文参数,如果不对参数进行处理的话,传到后台会变成乱码,经测试可以使用如下方法 这里是以jquery.autocomplete插件中获取输入框中的数据传到后台为例: 注意要对中文使用encodeURI编码两次 代码如下:...

    JavaScript中的常见问题解决方法(乱码,IE缓存,代理)

    2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的原因: 进行两次转换后,在第一次getparameter方法中进行第一次解码,因为解出来的是英文(第一次encode之后的结果),所以不会出问题...

    DanDanPlayForiOS:弹弹play iOS版 (非官方)。原作者已经不再维护, 正在用Flutter重写。此版本是在原OC的基础上继续使用Swift混编, 添加新功能

    [bug fix] 修复了无法远程BT下载encodeURI两次导致无法下载 [feature] 增加了新的远程PC文件查看界面 支持文件索引 以文件名展示 功能介绍 视频智能识别 支持从其它APP或者通过HTTP的方式导入视频 系统要求 最低支持...

    页面get请求 中文参数方法乱码问题的快速解决方法

    两次使用encodeURI()方法:例如:encodeURI(encodeURI(“中文”)),然后再服务器中使用URLDecoder.decode(“中文”, “UTF-8”); 以上这篇页面get请求 中文参数方法乱码问题的快速解决方法就是小编分享给大家的全部...

    ajax中文乱码如何解决

    今天终于解决了AJAX的中文乱码问题,写篇文章来帮助一下...今天把问题解决了,很简单,是使用escape(或encodeURI,两个函数javascript的函数,功能基本相同,可以查一下相关的帮助),但要使用两次,这是解决问题的关键

    AJAX中文乱码问题探讨及解决

    AJAX中文问题分为两大类: 1)发送路径中的参数有中文,在服务器段接收参数值是乱码 例如: var url=”a.... //两次,很关键[具体为什么,我也不清楚] /********************************************/ 也有人写成var

    web程序开发中的URL乱码解决方案

    如果是在js中使用的超级连接,则要先把该超连接经过两次转换为十六进制的编码后再保存在一个变量中,即:var url=encodeURI("...");url=encodeURI(url);window.lo cation.href=url; (2).如果该超连接在页面中,可通过...

    从js向Action传中文参数出现乱码问题的解决方法

    经过实践发现下面的方法可以解决中文乱码问题: JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码。例如: 代码如下: function show(next,id,realName){ document.forms[‘f2’].action=”...

    JS URL传中文参数引发的乱码问题

    1、在JS里对中文参数进行两次转码 代码如下: var login_name = document.getElementById(“loginname”).value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2、在服务器端对...

    jquery中ajax学习笔记4

    即当浏览器的输入内容相同,即请求的URL相同,这样浏览器就会去读缓存,两次的内容一样,就不会和服务器端进行交互。 解决方式:在请求的url中加上时间戳。 通过我的测试,IE、360两次用户名输入一致时不会和服务器...

    javascript文档

    encodeURI 方法 将文本字符串编码为合法的通用资源标识符 (URI)。 encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较...

    JScript 语言参考

    encodeURI 方法 将文本字符串编码为合法的通用资源标识符 (URI)。 encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较...

    微软JavaScript手册

    encodeURI 方法 将文本字符串编码为合法的通用资源标识符 (URI)。 encodeURIComponent 方法 将文本字符串编码为合法的通用资源标识符 (URI)组件。 Enumerator 对象 提供集合中的项的枚举。 相等运算符(==) 比较...

    jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解

    本文实例讲述了jQuery autoComplete插件两种使用方式及动态改变参数值的方法。分享给大家供大家参考,具体如下: 一、一次加载、多次使用: 前端JS代码: /*客户名称自动匹配*/ function customerAutoComplete(){ ...

    javascript入门笔记

    1、从弹框中,分两次输入两个数字,分别保存在 a 和 b中 2、如果 a 大于 b的话 ,则交换两个数字的位置 使用 短路&&,扩展赋值运算符,位运算 4、条件运算符(三目运算) 单目(一元)运算符 :++,--,! 双目(二元)...

    JavaScript笔记

    |--3.concat()方法--用于连接两个或多个数组,该方法不会改变现有的数组 |--4.slice()方法--截取元素。根据给定的范围可从已有的数组中返回选定的元素 14.Function:js中一切都是对象,连方法都是1个对象!! ...

Global site tag (gtag.js) - Google Analytics