urlEncode,空格变+

先提供一个urlencoed 方法

- (NSString *)LDURLEncodedString :(NSString*)str{

CFStringRef strRef = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR("!*‘();:@&=+$,/?%#[]"), kCFStringEncodingUTF8);

NSString *result = (NSString *)CFBridgingRelease(strRef);

NSLog(@"urlEncode123 = %@",result);

return result;

}

使用时,只需将原字符串传进来即可。str替换。

还有一些其他的情况:

9 NSURL 中的空格处理 相当于替换

NSString 除去前后空格 [fieldValue stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];//除去前后空格

NSString 分割字符串到数组         NSArray *images=[imagesStr componentsSeparatedByString:@";"];

1、在使用JSON解析请求服务器端的服务时,需要提供一个请求的URL,这个URL在有些时候需要传递一些参数。当这些参数是英文或数字就不会出现什么问题,如果是中文的话会出现请求不成功的情况。

[plain]

NSString *urlString = @"http://······.aspx?n=张三";

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL urlWithString:urlString];

2、还有一种常见的问题,就是特殊字符的问题。

以下是一些特殊字符的ASII(16进制编码)

+  URL中+表示空格  %2B

空格  URL中的空格可以用+或者编码%20

/  分隔目录和子目录   %2F

?  分隔实际的URL和参数  %3F

%  制定特殊字符  %25

#  表示书签  %23

&  URL中指定的参数间的分隔符  %26

=   URL中指定参数的值  %3D

以空格为例

NSString *urlString = @"http://······.aspx?t=2012/9/1 20:00:30";

urlString = [urlString replaceOccurrencesOfString:@" " withString:@"%20"]; //正确

NSString *str = [@"2011.10.01(空格)10:10:10.........." stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://111.234.51.56/login_member.pl?time=%@", str]];

NSLog(@"URL:%@", url);

比如URL中包含汉字、空格等字符时,需要显示的转换一下!!!

反转换这样做:

NSLog(@"%@", [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);

搜下 %2b

时间: 2024-10-09 21:47:32

urlEncode,空格变+的相关文章

URLEncoder.encode转译后“空格”变“加号”的问题的解决方案

dst_fname=URLEncoder.encode(dst_fname); 对字符串dst_fname进行编码,但是发现空格全部都变成了加号 dst_fname=URLEncoder.encode(dst_fname);dst_fname=dst_fname.replaceAll("\\+",  "%20"); //处理空格,我们提需求的傻B非得要空格的,但是不编码有很多非常特殊的文字无法显示. 遇到的问题:当上传文件的文件名中间有空格,用URLEncoder.

Asp.Net处理URL空格变%20问题

在Web前端需要页面跳转的时候我们可能会这样子用:window.location.href = "page.html?parameters",如果刚好parameters里面带有空格,程序就可能出问题. 在新页面page.html想要获取parameters的时候,在IE浏览器下面可以正常获取,但是在chrome发现空格被替换成%20了. 这样就会造成了传回到服务器的参数并不是我们期望的格式,从而引发程序错误. 既然是Web前端和后端的编码问题,后台处理起来也比较简单,解码一下就好了:

linux下处理excel里copy的某列的字符串,去除行末空格并添加特殊字段

背景:从excel里copy出一列数据到txt,然后放到lunx下处理,发现每一行末尾都是固定个数的空格,我想要在每行字符串末尾加固定字段并逗号隔开输出, cat fastjason.txt | awk -F / '{print $3}' | sort | uniq > fast.log将特定字段取出 :cat fast.log |xargs echo >fast.log 去掉每行末尾的不定个数空格,全部放到一行,每个应用以空格隔开:sed -i 's/ /\n/g' fast.log,将空格

解决visual studio空格变成很多点号的3种方法

在用visual studio做网站时不知道按了什么快捷键,所有页面上的空格都变成了点号,就像下图那样. 要解决空格变点号的方法有两种:1.编辑->高级->查看空白2.Ctrl+E 然后按S3.Ctrl+R+W

在ASP.NET中支持断点续传下载大文件(ZT)

IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag         客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传的下载: Accept-Ranges:告知下载客户端这是一个可以恢复续传的下载,存放本次下载的开始字节位置.文件的字节大小: ETag:保存文件的唯一标识(我在用的文件名+文件最后修改时间,以便续传请求时对文件进行

正确处理下载文件时HTTP头的编码问题(Content-Disposition)

转自:https://blog.robotshell.org/2012/deal-with-http-header-encoding-for-file-download/ 最近在做项目时遇到了一个 case :需要实现一个强制下载功能(即强制弹出下载对话框,阻止浏览器尝试解析显示某些文件格式),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符). 前一个需求很容易实现:使用 HTTP Header 的 Content-Disposition: attachment 即可,还可

php 点击按钮自动下载,IE下有问题,求解答!

直接看代码! test.php <?php include_once('index.php'); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <a href="#" id="b

【转】正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)

最近在做项目时遇到了一个 case :需要实现一个强制在浏览器中的下载功能(即强制让浏览器弹出下载对话框),并且文件名必须保持和用户之前上传时相同(可能包含非 ASCII 字符). 前一个需求很容易实现:使用 HTTP Header 的 Content-Disposition: attachment 即可,还可以配合 Content-Type: application/octet-stream 来确保万无一失.而后一个需求就比较蛋疼了,牵扯到 Header 的编码问题(文件名是作为 filena

asp.net实现大视频上传

IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传的下载: Accept-Ranges:告知下载客户端这是一个可以恢复续传的下载,存放本次下载的开始字节位置.文件的字节大小: ETag:保存文件的唯一标识(我在用的文件名+文件最后修改时间,以便续传请求时对文件进行验证): Las