1
8
我不确定这是否正是您要查找的内容,但nsstring中有一个方法将清理URL: |
2
2
我认为这里的行为是正确的,因为%d不是一个有效的URL组件(即转义符,但后面需要两个十六进制字符)。 你不能只使用url对给定的url进行编码,因为这样会对/s和进行编码?还有,这是你不想要的。 所以,问题是,这里的正确行为是什么? 也许你想把它变成…
(即,在URL中,%被编码为已编码的%d版本,因此当方法得到输入时,它会将a视为被设置为%d) 我不认为有任何库函数可以为您做这种事情,因为没有“正确”的方法可以做到这一点。关于他,你能做的唯一正确的事情就是返回一条错误消息,说明你得到的URL无效(就像urlWithString一样) 如果您想尝试处理输入,我想您需要在URL中搜索没有紧跟两个十六进制字符的任何%符号,然后在这种情况下将%替换为%25。对于正则表达式来说,这应该是非常可能的,但是我怀疑如果您的URL开始包含ASCII字符集之外的字符的编码版本,那么可能会有一些额外的复杂性。 |
3
1
不幸的是,你需要比苹果提供的更聪明:
这将转义所有无效的URL字符,使有效的“http://foo.com/hey%20dude/”变为“http://foo.com/hey%2520dud/”,这不是我们想要的。 我做了一个nsurl分类,它做了正确的事情,使用奇数字符串,比如部分编码的字符串(即“http://foo.com/hey dude/i%20do%20it/”。 代码如下:
它可以与UTF8字符串编码和ASCII字符串一起工作。 |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |