如何知道一个字符串是否被url编码为iOS?
How to know whether a string is url encoded in iOS?
后端响应中的一些 url 字符串是 url 编码的,而有些则不是。如何挑出未编码的?
更新:
假设有三种字符串:
有效 url 字符串,url-编码;
有效 url 字符串,原始(未 url 编码);
无效 url 字符串。
我想做的是从前两种字符串创建URL
。
对于第一类,我就叫init?(string:)
。
对于第二种,我必须在调用之前对它们进行编码 init?(string:)
那么如何高效优雅地从这些字符串创建 URL
个实例呢?
一个简单的 hack 是您可以使用 regexp
来检查字符串是否包含通常不会出现在 URL-encoded 字符串中的空格。这可能会帮助您实现目标。另外@rmaddy的评论也是不错的选择。
检查接受的答案:
How to find out if string has already been URL encoded?
它说:
解码,与原版比较。如果确实不同,则对原始文件进行编码。如果没有差异,则不会对原始文件进行编码。但它仍然没有说明新解码的版本是否仍未编码。递归的好任务。
因为,您正在处理自己的 API 响应,并且 url 字符串将被编码或纯文本;你可以只解码一次并与原始字符串进行比较。
Straight-forward:
解码并检查它是否与原始字符串匹配。
- 匹配 - 使用原始字符串检查有效 url 使用
regexp
- 不匹配 - 使用
regexp
. 将解码后的字符串用于有效 url
后端响应中的一些 url 字符串是 url 编码的,而有些则不是。如何挑出未编码的?
更新:
假设有三种字符串:
有效 url 字符串,url-编码;
有效 url 字符串,原始(未 url 编码);
无效 url 字符串。
我想做的是从前两种字符串创建URL
。
对于第一类,我就叫init?(string:)
。
对于第二种,我必须在调用之前对它们进行编码 init?(string:)
那么如何高效优雅地从这些字符串创建 URL
个实例呢?
一个简单的 hack 是您可以使用 regexp
来检查字符串是否包含通常不会出现在 URL-encoded 字符串中的空格。这可能会帮助您实现目标。另外@rmaddy的评论也是不错的选择。
检查接受的答案: How to find out if string has already been URL encoded?
它说: 解码,与原版比较。如果确实不同,则对原始文件进行编码。如果没有差异,则不会对原始文件进行编码。但它仍然没有说明新解码的版本是否仍未编码。递归的好任务。
因为,您正在处理自己的 API 响应,并且 url 字符串将被编码或纯文本;你可以只解码一次并与原始字符串进行比较。
Straight-forward: 解码并检查它是否与原始字符串匹配。
- 匹配 - 使用原始字符串检查有效 url 使用
regexp
- 不匹配 - 使用
regexp
. 将解码后的字符串用于有效 url