由于url支持26个英文字母、数字和少数几个特殊字符,因此,对于url中包含非标准url的字符时,就需要对其进行编码。场景一:iOS端请求一个html页面,需要给该html界面传递参数,且参数是多个。解决办法iOS端在请求该html的URL时通过?后添加字符串来传递参数,但由于参数只能是一个且是字符串类型,所以需要使用特殊字符把多个参数连接起来形成一个字符串,再由这个字符串生成对应
用以下的方法进行
处理
带有
特殊字符
的参数,然后再去用转义后的字符串拼接
URL
就没有问题了。
1 (
NS
String*)CF
URL
CreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)[参数]
, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFS...
URL
特殊字符
处理
一般来说我们调用webVIew的时候,只要给webVIew传一个
url
,在网页里面就可以显示网页信息。但是当我们传的
url
比较麻烦或者带文字符,带参数的时候我们需要对
特殊字符
进行转义。我们还可以用遍历,正则等来把
特殊字符
给替换掉!!
有两种方法:
一,使用
NS
String的方法:
NS
String * str1 =[nameInput.text
stringByTrimmingCharactersI
nS
et:[
NS
CharacterSet
whitespaceAndNewlineCharacterSet]];
NS
String * str2 =[passwdInput.text
stringByTrimmingCharactersI
nS
et:
在进行http传输的过程,如果有特殊的符合,例如“+,&。*”,不会进行
处理
,都直接替换掉了。原因:默认的系统不会对这些特殊符号进行转义,只会进行替换解决办法:在post之前对这些特殊符号做一次UTF8就可以解决这个问题了
代码如下:
NS
String *str = @"打电话给&rp=张三";
NS
String *bStr = (__bridge
NS
String*)CF
URL
Create
接口里边混合:中文、空格、
特殊字符
...项目很长时间了,代码量级很大,想要修改怕是几天几夜不能睡觉(稍微夸张);
那么有没有更高效更安全的解决办法,不用更改一点代码,答案是:肯定的!!!
解决思路:在执行
URL
WithString方法的时候,进行
处理
,那么就需要运用到runtime上无所不能的,交换方法接口:
引入run time专用头文件#import <objc/mes...
URL
中的
特殊字符
有些符号在
URL
中是不能直接传递的,如果要在
URL
中传递这些特殊符号,那么就要使用他们的
编码
了。
编码
的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的
编码
值是"%20"。
下表中列出了一些
URL
特殊符号及
编码
:替换为%3A
十六进制值
1. +
URL
中+号表示空格 %2B
2. ...
今天发现一个蛋疼的问题,服务端返回的
url
String里面有时含有中文,使用
[
NS
URL
URL
WithString:
url
String]生成
URL
对象时,
iOS
客户端不能正确进行网络请求,网上找到的
URL
Encode方法又不能完全解决问题.
NS
String* encodedString = [
url
StringstringByAddingPercentEsc
OC中
NS
Data dataWithContentsOf
URL
:报警告should not occur on this application's main thread as it may lead to UI unrespo
ns
iveness. Please switch to an asynchronous networking API such as
URL
Session. 如何
处理