Erlo

NSURL请求中含有中文的解决方法

2023-07-11 14:30:17 发布   205 浏览  
页面报错/反馈
收藏 点赞

原文地址:https://blog.csdn.net/zhanglei5415/article/details/131434931

一、问题

当对含有中文的url字符串,进行NSURL对象包装时,是不能被识别的。 不会得到期望的NSURL对象,而是返回一个nil 值 ;

NSString *urlString = @"http://www.aa.com/download/文件.docx";
NSURL *url = [NSURL urlWithString:urlString];

//url is nil

要解决这个问题就需要对包含中文字符的地址先进行url encode编码。 网上有很多解决的方法,但都是老版本的方法,现在已被iOS作废了,所以有必要更新一下代码

二、解决办法

2.1 中文编码

在对含有中文的url字符串进行NSURL对象包装时, 先进行中文编码.

//原包含中文字符的url地址
NSString *urlString = @"http://www.aa.com/download/文件.docx";

//对中文字符编码
NSString *encodedString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:
							[NSCharacterSet characterSetWithCharactersInString:@"`#%^{}"[]|\ "].invertedSet];
NSLog(@"origin url: %@, encoded url:%@", urlString, encodedString);


//origin url: http://www.aa.com/download/文件.docx, 
//encoded url:http://www.aa.com/download/%E6%96%87%E4%BB%B6.docx

解码及更多内容请参考:https://blog.csdn.net/zhanglei5415/article/details/131434931

本文来自博客园,作者:reyzhang,转载请注明原文链接:https://www.cnblogs.com/reyzhang/p/17544468.html

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

浏览 2966.56 万次 点击这里给我发消息

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认