首页 > 其他分享 >NSURL请求中含有中文的解决方法

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

时间:2023-07-11 14:13:14浏览次数:67  
标签:aa 中文 请求 url www NSURL urlString

原文地址: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

标签:aa,中文,请求,url,www,NSURL,urlString
From: https://www.cnblogs.com/reyzhang/p/17544468.html

相关文章

  • 【ACL 2023】具有高效推理速度的中文领域文图生成扩散模型和工具链
    近日,阿里云机器学习平台PAI与华南理工大学合作(阿里云与华南理工大学联合培养项目)在自然语言处理顶级会议ACL2023上发表了具有高效推理速度的中文领域文图生成扩散模型和工具链RapidDiffusion。它是面向中文特定领域的文图生成模型,采用与StableDiffusion一样的模型结构,在给定中文......
  • 获取请求的ip地址
    直接上代码publicclassIpUtil{/***获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址,**可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的......
  • fl studio哪个版本好? 2023年会有免费fl studio21中文解锁版下载?
    FLStudio简称FL,全称FruityLoopsStudio,因此国人习惯叫它"水果"。目前最新版本是FLStudio21.0.3.3517版本,它让你的计算机就像是全功能的录音室,大混音盘,非常先进的制作工具,让你的音乐突破想象力的限制。FLStudio21首先提供了音符编辑器,编辑器可以针对作曲者的要求编辑出不同音......
  • Camtasia Studio 2023.0.2 Build 45178中文版功能介绍及免费下载安装教程
    TechSmithCamtasia2023Mac版软件由兔八哥爱分享的Macos系统上一款屏幕录制软件中文版,它可以帮助用户录制电脑屏幕、添加音频、视频和图片,进行剪辑和编辑,并输出高质量的视频文件。CamtasiaStudio2023.0.2Build45178软件介绍Camtasia2023是一款简便的屏幕录制程序,该软件帮助......
  • 解决从springboot配置文件application.properties获取中文乱码
    这里因为自带的iso编码格式需要进行如下操作 新增两个文件重写packagecom.java.file.config;importorg.springframework.boot.origin.Origin;importorg.springframework.boot.origin.OriginTrackedValue;importorg.springframework.boot.origin.TextResourceOrigin;......
  • 聊聊Zookeeper技术内幕之客户端与SetData请求处理
    从客户端会话创建到网络连接、请求处理,简单的叙述下流程与逻辑客户端客户端是开发人员使用ZooKeeper最主要的途径,ZooKeeper的客户端主要由以下几个核心组件组成。ZooKeeper实例:客户端的入口。ClientWatchManager:客户端Watcher管理器。HostProvider:客户端地址列表管理器(管理......
  • 关于请求方式
    @RestController@RequestMapping("/api")publicclassMyController{@PostMapping("/endpoint")publicResponseEntity<String>handleRequest(@RequestBodyMyParameterparameter){//处理参数逻辑Stringname=param......
  • 3D Slicer 设置中文界面
    下载并安装最新的3DSlicer预览版(2023年5月17日之后发布)安装SlicerLanguagePacks扩展。从主菜单栏选择“View(视图)”,然后选择“ExtensionManager(扩展管理器)”,打开扩展管理器对话框。在扩展管理器对话框中,您可以看到可用的扩展列表。在左侧的“Categories(类别)”部......
  • JS中使用Promise.all控制所有的异步请求都完成后,在执行后续逻辑
    使用场景为,在js中连续的几个异步耗时操作,后面的耗时操作需要使用第一个操作的返回结果。例如调用ajax异步接口,需要先创建完主表,然后拿到主表id在去循环创建明细表,等全部创建完成后,弹出提示来,或者失败提示。通常情况,在耗时操作完成后在去调用,需要将异步方法转成同步方法,结合回调函......
  • chat gpt人工智能中文版下载
    欢迎来到chatGPT中文版入口!在这里,您将迈入一段令人兴奋的智能对话之旅。chatGPT是一款基于人工智能技术的强大工具,它能够模拟人类对话,为您提供个性化、智能化的交流体验。无论您是想与chatGPT进行闲聊、寻求帮助、获取信息,还是进行创作和娱乐,这里都是您的最佳选择。chatGPT是......