后端响应中的某些url字符串是url编码的,而有些则不是。如何挑选未编码的人?
已更新:
鉴于存在三种字符串:
有效的url字符串,已进行url编码;
有效的URL字符串,原始(未经url编码);
无效的网址字符串。
我想做的是从前两种字符串创建URL
。
对于第一种类型的人,我只会打init?(string:)
。
对于第二种类型,在调用init?(string:)
那么如何从这些字符串中高效而优雅地创建URL
实例?
答案 0 :(得分:1)
从以下位置查看接受的答案: How to find out if string has already been URL encoded?
它说: 解码,与原始图像进行比较。如果确实不同,则对原稿进行编码。如果没有差异,则原始文件不会被编码。但是,对于新解码的版本是否仍未编码,它仍然没有说什么。递归很好。
自此,您正在处理自己的API响应,并且url字符串将是编码的或纯文本的;您只需解码一次即可与原始字符串进行比较。
直接: 解码并检查它是否与原始字符串匹配。
regexp
regexp
将解码后的字符串用于有效网址。答案 1 :(得分:0)
一个简单的技巧是,您可以使用regexp
来检查字符串是否包含通常在URL编码的字符串中不会包含的空格。这可以帮助您实现目标。否则@rmaddy的评论也是一个不错的选择。