(IOS)字符串encode编码(编码url字符串不成功的问题)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(IOS)字符串encode编码(编码url字符串不成功的问题)相关的知识,希望对你有一定的参考价值。
参考技术A // 我们一般用这个方法处理stringByAddingPercentEscapesUsingEncoding但是这个方法好想不会处理/和&这种特殊符号,这种情况就需要用下边这个方法处理@implementationNSString (NSString_Extended)
- (NSString*)urlencode
NSMutableString *output = [NSMutableString string];
const unsigned char *source = (const unsigned char *)[self UTF8String];
intsourceLen =strlen((constchar*)source);
for(inti =0; i < sourceLen; ++i)
constunsignedcharthisChar = source[i];
if(thisChar ==' ')
[outputappendString:@"+"];
elseif(thisChar =='.'|| thisChar =='-'|| thisChar =='_'|| thisChar =='~'||
(thisChar >='a'&& thisChar <='z') ||
(thisChar >='A'&& thisChar <='Z') ||
(thisChar >='0'&& thisChar <='9'))
[outputappendFormat:@"%c", thisChar];
else
[outputappendFormat:@"%%%02X", thisChar];
returnoutput;
什么是urlencode编码
urlencode编码:就是将字符串以URL编码,一种编码方式,主要为了解决url中中文乱码问题。例如:
String mytext = java.net.URLEncoder.encode("中国", "utf-8"); //urlencode编码
String mytext2 = java.net.URLDecoder.decode(mytext, "utf-8"); //urlencode解码
这两条语句在同一个页面中的话,得到的结果是:
mytext: %E4%B8%AD%E5%9B%BD
mytex2: 中国 参考技术A 不是很理解你的意思
从HTTP协议来讲, 一个标准的URL是有固定的编码方式的,它只能包含固定的字符集
比如你输入一个网址
http://www.baidu.com/s?wd=我&cl=3, 在访问这个网址的时候
网络上传输的时候,‘我’这字会变成%CE%D2 这种编码
网站收到你这个网址的时候,再把%CE%D2 转换成 ‘我’字才能理解你这个网址的意思
以上是关于(IOS)字符串encode编码(编码url字符串不成功的问题)的主要内容,如果未能解决你的问题,请参考以下文章
PHP base64_encode 在URL地址参数编码上使用
JavaWeb基础 URLEncoder.encode 对字符串进行URL编码