虽然escape()、encodeURI()、encodeURIComponent()三种方法都能对一些影响URL完整性的特殊

字符进行过滤。但后两者是将字符串转换为UTF-8的方式来传输,解决了页面编码不一至导致的乱码问

题。例如:发送页与接受页的编码格式(Charset)不一致(假设发送页面是GB2312而接收页面编码是

UTF-8),使用escape()转换传输中文字串就会出现乱码问题。

以下是JS下对URL进行编/解码的各种方法:

escape 方法:返回一个可在所有计算机上读取的编码 String 对象。
function escape(charString : String) : String

不会被此方法编码的字符: @ * / +

说明:escape 方法返回一个包含 charstring 内容的字符串值(Unicode 格式)。所有空格、标点、

重音符号以及任何其他非 ASCII 字符都用 %xx 编码替换,其中 xx 等于表示该字符的十六进制数。

例如,空格返回为“%20”。(字符值大于 255 的字符以 %uxxxx 格式存储。)

注意:escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和

encodeURIComponent 方法。
encodeURI 方法:返回编码为有效的统一资源标识符 (URI) 的字符串。
function encodeURI(URIString : String) : String

不会被此方法编码的字符:! @ # $ &   * ( ) = : / ; ? + '

说明:encodeURI 方法返回一个已编码的 URI。如果将编码结果传递给 decodeURI,则将返回初始的

字符串。encodeURI 不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用

encodeURIComponent 对这些字符进行编码。
encodeURIComponent 方法:返回编码为统一资源标识符 (URI) 的有效组件的字符串。
function encodeURIComponent(encodedURIString : String) : String

不会被此方法编码的字符:! * ( ) '

说明:encodeURIComponent 方法返回一个已编码的 URI。如果将编码结果传递给

decodeURIComponent,则将返回初始的字符串。因为 encodeURIComponent 方法将对所有字符编码,

请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,则其中的斜杠也将被

编码,这样,当该字符串作为请求发送到 Web 服务器时它将是无效的。如果字符串中包含多个 URI

组件,请使用 encodeURI 方法进行编码。
unescape 方法:从用 escape 方法编码的 String 对象中返回已解码的字符串。
function unescape(charString : String) : String

说明:unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的

字符都用 ASCII 字符集当中等效的字符代替。(以 %uxxxx 格式(Unicode 字符)编码的字符用十六

进制编码 xxxx 的 Unicode 字符代替。)
注意:unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和

decodeURIComponent 方法。
decodeURI 方法:返回一个已编码的统一资源标识符 (URI) 的非编码形式。
function decodeURI(URIstring : String) : String
decodeURIComponent 方法:返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。
function decodeURIComponent(encodedURIString : String) : String

C#中对URL编码的方法。。。
编码:Server.UrlEncode(string)
解码:Server.UrlDecode(string)

转载于:https://www.cnblogs.com/zgqys1980/archive/2009/08/24/1552762.html

jscript对URL参数进行编码与解码相关推荐

  1. java url转urf8_UrlEncode编码/UrlDecode解码使用方法

    当使用地址栏提交查询参数时,如果不编码,非英文字符会按照操作系统的字符集进行编码提交到服务器,服务器会按照配置的字符集进行解码,所以如果两者不一致就会导致乱码. encodeURI函数采用UTF-8对 ...

  2. 微信小程序页面跳转时URL参数丢失问题

    最近在小程序开发过程中,发现之前可用的某个功能字段展示为了undefined,后来查看参数发现页面跳转时参数丢失了导致的 // group/index.jshandleJump() {const { ...

  3. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  4. vue 项目优雅的对 url 参数加密

    实现方案:stringifyQuery 和 parseQuery 近期因为公司内部的安全检查,说我们现在的系统中参数是明文的,包括给后端请求的参数和前端页面跳转携带的参数,因为是公司内部使用的系统,在 ...

  5. Java中的编码与解码

    1. 基本概念: (1)字符集(Charset):是一个系统支持的所有字符的集合,包括各国家文字.标点符号.图形符号.数字等. (2)字符编码(Character Encoding):就是一套自然语言 ...

  6. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

  7. PHP对URL进行字符串编码

    //对URL进行字符串编码和解码 $url1 = 'https://www.baidu.com/uploade/img/123.png'; echo $url1; echo '<br>'; ...

  8. go url 参数编码和解码

    为什么80%的码农都做不了架构师?>>>    1 在做支付的时候会涉及到 url参数编码和解码,然后转换成自己想要的格式 app_id=2016073100129537&b ...

  9. c# html 解码,C#,.Net Core Escape、Url编码与解码

    2019-11-14 更新 不知道大家有没有注意过  字符串保存到数据库里是 这样的一段字符 要引用.net 自带的DLL   Microsoft.JScript 这字符是  Escape编码 //E ...

  10. java学习-http中get请求的非ascii参数如何编码解码探讨

    # 背景: 看着别人项目代码看到一个PathUtils工具类, 里面只有一个方法,String  rebuild(String Path),将路径进行URLDecoder.decode解码,避免路径中 ...

最新文章

  1. debian8下给postgresql9.5编译配置pgpool-II-3.5
  2. C语言的 32个关键之和9个控制语言之关键字
  3. shell 脚本调试
  4. Intel Realsense D435 官方推荐有源USB线(有源电缆 cable)
  5. 【转】日服巫术online过驱动保护分析(纯工具)(工具+自写驱动)
  6. SAP云平台Neo环境支持nodejs module吗
  7. 一文讲清数据治理、数据管理、数据资产管理区别,数据专家必看
  8. linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
  9. Java : ServiceLoader详解
  10. 【问题解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
  11. 2021华为悦盒EC6110-T-M-拆机-强刷固件及教程
  12. 给出问题一个临时解决方案(110224)
  13. OWASP十大漏洞之一
  14. h1z1最新消息服务器,h1z1服务器在哪 | 手游网游页游攻略大全
  15. Echart自适应图表大小和字体大小
  16. 阅读javascript高级程序设计随笔(五)
  17. 【MATLAB统计分析与应用100例】案例011:matlab读取Excel数据,调用regress函数作一元线性回归分析
  18. JSON.stringify 函数 (JavaScript)
  19. 2.3.1-4. IEEE 754 标准
  20. LM7805使用总结

热门文章

  1. *第九周*数据结构实践项目一【猴子选大王(数组)】
  2. Linux进阶之排错
  3. RabbitMQ----源码安装
  4. RQNOJ 95 多多看DVD(加强版):01背包
  5. javase二维数组笔记
  6. webpack 的使用教程
  7. spring mvc实现ajax 分页
  8. setTimeout()方法和setInterval()方法
  9. 软件测试第四组第一周作业第一天
  10. Selenium-鼠标操作