服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - ios获取数据之encodeURI和decodeURI的实例

ios获取数据之encodeURI和decodeURI的实例

2021-04-04 17:32小飞雪 IOS

下面小编就为大家带来一篇ios获取数据之encodeURI和decodeURI的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

在app开发过程中,免不了要进行ios的数据处理,在ios传递数据的过程中,会出现json数据获取不到的情况,这时候就轮到encodeuri 和 decodeuri出马了。

1、encodeuri,decodeuri

encodeuri:将字符串作为 uri 进行编码

•不会对 ascii 字母和数字进行编码,也不会对这些 ascii 标点符号进行编码( 即:- _ . ! ~ * ' ( ) )。

•目的是对 uri 全部的编码,因此对在 uri 中具有特殊含义的 ascii 标点符号(即:;/?:@&=+$,#)是不会进行编码的。所以,此函数别名为 encodeurl 不为过,相当于 php 的 url_encode 。

例子:

?
1
2
3
4
5
encodeuri("http://ydr.me?user=hello 云淡然");
// "http://ydr.me?user=hello%20%e4%ba%91%e6%b7%a1%e7%84%b6"
 
decodeuri("http://ydr.me?user=hello%20%e4%ba%91%e6%b7%a1%e7%84%b6");
// http://ydr.me?user=hello 云淡然

由于 encodeuri 是对 url 的完整编码,所以常用于url的跳转之处:

?
1
2
location.href=encodeuri('http://baidu.com/s?word=hello 云淡然');
// "http://baidu.com/s?word=hello%20%e4%ba%91%e6%b7%a1%e7%84%b6"

在各个浏览器打开该地址,表现均不相同:

•ie的url表现的最规范(完全按照encodeuri编码)

•chrome的url表现比较规范(部分按照encodeuri编码)

•firefox的url表现最不规范(完全没有安装encodeuri编码)

虽然各个浏览器的url表现均不相同,但在 firefox 和 chrome 中url的可读性最高,ie最低。

2、encodeuricomponent 和 decodeuricomponent

encodeuri 是对完整的url进行编码,而 encodeuricomponent 是对url的参数进行编码的,并且其编码特点如下:

•不会对 ascii 字母和数字进行编码,也不会对这些 ascii 标点符号进行编码(即: - _ . ! ~ * ' ( ) )。

•目的是对 uri 部分的编码,因此对在 uri 中具有特殊含义的 ascii 标点符号(即:;/?:@&=+$,#)是会进行编码的。

?
1
2
3
4
5
encodeuricomponent("http://ydr.me?user=hello world");
// "http%3a%2f%2fydr.me%3fuser%3dhello%20world"
 
decodeuricomponent("http%3a%2f%2fydr.me%3fuser%3dhello%20world");
// http://ydr.me?user=hello world

由于 encodeuricomponent 是对url部分编码,因此常用于querystring、hashsearch、hashpath以及cookie中,如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
// querystring 编码
"http://ydr.me?from=" + encodeuricomponent("http://baidu.com");
// "http://ydr.me?from=http%3a%2f%2fbaidu.com"
 
// hashsearch、hashpath 编码
"http://ydr.me#?from=" + encodeuricomponent("http://baidu.com");
// "http://ydr.me#?from=http%3a%2f%2fbaidu.com"
"http://ydr.me#!from/" + encodeuricomponent("http://baidu.com");
// "http://ydr.me#!from/http%3a%2f%2fbaidu.com"
 
// cookie 编码
document.cookie = "from=" + encodeuricomponent("http://baidu.com");
// "from=http%3a%2f%2fbaidu.com"

3、escape 和 unescape

escape 与 encodeuri 和 encodeuricomponent 类似,都是对字符串进行编码。不同点在于该方法不会对 ascii 字母和数字进行编码,也不会对这些 ascii 标点符号(即: * @ - _ + . / )进行编码,其他所有的字符都会被转义序列替换。

注意:ecmascript v3 反对使用该方法,应用使用 decodeuri() 和 decodeuricomponent() 替代它。

以上这篇ios获取数据之encodeuri和decodeuri的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/feiyu6/archive/2017/11/07/7800719.html

延伸 · 阅读

精彩推荐
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22