NSURL请求中含有中文的解决方法
原文地址: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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)