文档章节

JavaScript 函数 encodeURI(), encodeURIComponent()的使用

anziguoer
 anziguoer
发布于 2016/06/14 15:48
字数 516
阅读 31
收藏 2

###JavaScript 函数 encodeURI(), encodeURIComponent()的使用

背景:这几天在使用 node 写代码, 数据全部是调用其他php系统的接口, 每次调用到要生产签名验证,所以遇到了问题:
  1. 在 php 中使用给接口传递数据中遇到多维数组的话就用一个参数, 这个参数进行 json_encode();后更具算法获取到签名,传递给 php 接口.
  2. 我在用 node 同样也是需要生成签名后传递给 php,思路和上面的一致,遇到多维数组的话就用一个参数,不过遇到了生成签名错误的问题, 首先我用的是函数encodeURI()(encodeURI() 函数可把字符串作为 URI 进行编码。), 对其中的特殊字符进行编码.编码发送后提示签名验证失败, 左思右想,看到了函数encodeURI(), (什么东西, 没见过)那就百度吧, http://www.w3school.com.cn/jsref/jsref_encodeuri.asp, 说明 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# 这里看到了相关的介绍, 我在看看我的使用 encodeURI()编码后的代码, 发现其中对象的连接符 : 竟然没有变化还是 :, 我有吧 php 的 json_encode 后的编码看了一遍, PHP 里面的 : 是编码过的, 宰下面看到了 encodeURIComponent(): 提示:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。 似乎看到了太阳, 那就马上吧使用的 encodeRUI()函数换为 encodeRUIComponent(), 测试结果, 没错, 这次提示成功.

###node 这个东西好是好, 就是需要自己实现的东西太多了,不过对于想连接底层知识的来说很值得去了解,熟悉。

© 著作权归作者所有

anziguoer

anziguoer

粉丝 29
博文 82
码字总数 40050
作品 0
海淀
程序员
私信 提问
escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 es...

小编辑
2012/02/21
597
1
js中escape,encodeURI,encodeURIComponent三个函数的区别

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、 传递参数时需要使用encodeURIComponent,这样组合的url...

阿秀a
2010/05/18
0
0
JS对URL字符串进行编码/解码分析

一、为什么要进行js编码和解码? 只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。 出现的情况: 网址路径中包含汉字...

qq_38055050
2018/05/12
0
0
【Js】----js提交 参数的值 含有&等特殊符号

例如:saveUser?password=111&22233 & name=zhangsan 可以 用js的encodeURIComponent 对值进行编码 .Javascript编码方法 发送请求的一方叫做客户端.我们经常需要使用Javascript在客户端编码中...

LYQ1990
2017/09/20
17
0
JS URL传中文参数引发的乱码问题

今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决。 解决方法如下: 1、在JS里对中文参数进...

jxlgzwh
2014/03/19
115
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部