如何知道字符串是否为iOS中的url编码?

如何知道字符串是否为iOS中的url编码?,ios,urlencode,Ios,Urlencode,后端响应中的某些url字符串是url编码的,而有些则不是。如何识别那些未编码的 更新: 假设有三种字符串: 有效的url字符串,url编码 有效的url字符串,原始url未编码 无效的url字符串 我想做的是从前两种字符串创建URL 对于第一类,我只调用init?string: 对于第二类,我必须在调用init?string之前对它们进行编码: 那么,如何高效、优雅地从这些字符串创建URL实例呢?一个简单的技巧是,您可以使用regexp检查字符串是否包含通常不会在URL编码字符串中得到的空白。这

后端响应中的某些url字符串是url编码的,而有些则不是。如何识别那些未编码的

更新:

假设有三种字符串:

有效的url字符串,url编码

有效的url字符串,原始url未编码

无效的url字符串

我想做的是从前两种字符串创建URL

对于第一类,我只调用init?string:

对于第二类,我必须在调用init?string之前对它们进行编码:


那么,如何高效、优雅地从这些字符串创建URL实例呢?

一个简单的技巧是,您可以使用regexp检查字符串是否包含通常不会在URL编码字符串中得到的空白。这可能会帮助你实现你的目标。否则@rmaddy的评论也是一个不错的选择

从以下位置检查已接受的答案:

它说: 解码,与原文比较。如果它确实不同,则对原始文件进行编码。如果不存在差异,则不会对原始文件进行编码。但它仍然没有说明新解码的版本是否仍然编码。递归的一个好任务

因为,您正在处理自己的API响应,url字符串将是编码的或纯文本的;您可以只解码一次并与原始字符串进行比较

直截了当地说: 解码并检查它是否与原始字符串匹配

匹配-使用原始字符串使用regexp检查有效url 不匹配-使用regexp将解码字符串用于有效url。
你为什么要知道?无论哪种方式都要解码。如果它没有编码,那么解码就什么也做不了。