如何知道iOS中是否对字符串进行url编码?

时间:2019-07-08 05:19:06

标签: ios urlencode

后端响应中的某些url字符串是url编码的,而有些则不是。如何挑选未编码的人?


已更新:

鉴于存在三种字符串:

  • 有效的url字符串,已进行url编码;

  • 有效的URL字符串,原始(未经url编码);

  • 无效的网址字符串。

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

对于第一种类型的人,我只会打init?(string:)

对于第二种类型,在调用init?(string:)

之前,我必须对它们进行编码

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

2 个答案:

答案 0 :(得分:1)

从以下位置查看接受的答案: How to find out if string has already been URL encoded?

它说: 解码,与原始图像进行比较。如果确实不同,则对原稿进行编码。如果没有差异,则原始文件不会被编码。但是,对于新解码的版本是否仍未编码,它仍然没有说什么。递归很好。

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

直接: 解码并检查它是否与原始字符串匹配。

  1. match-使用regexp
  2. 使用原始字符串检查有效的url
  3. 不匹配-使用regexp将解码后的字符串用于有效网址。

答案 1 :(得分:0)

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