gpt4 book ai didi

iphone - [NSURL URLWithString :stringContainingSpecialCharacters]

转载 作者:行者123 更新时间:2023-12-03 20:34:45 28 4
gpt4 key购买 nike

假设,我有一个地址栏,它是一个名为 textField 的 UITextField 和一个名为 webView 的 UIWebView。大多数情况下,以下代码有效:

[webView loadURL:[NSURL URLWithString:textField.text]];

当我输入一些带有特殊字符的长字符串时,URLWithString: 仅返回null。 Readability 书签就是一个很好的例子:

javascript:(function(){readConvertLinksToFootnotes=true;readStyle='style-newspaper';readSize='size-medium';readMargin='margin-wide';_readability_script=document.createElement('script');_readability_script.type='text/javascript';_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(Math.random());document.documentElement.appendChild(_readability_script);_readability_css=document.createElement('link');_readability_css.rel='stylesheet';_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';_readability_css.type='text/css';_readability_css.media='all';document.documentElement.appendChild(_readability_css);_readability_print_css=document.createElement('link');_readability_print_css.rel='stylesheet';_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';_readability_print_css.media='print';_readability_print_css.type='text/css';document.getElementsByTagName('head')[0].appendChild(_readability_print_css);})();

根据this answer ,我可以使用 stringByAddingPercentEscapesUsingEncoding 来转义字符串,实际上它对于这种情况工作得很好。

我的问题是:在将字符串传递给 webView 之前始终调用 stringByAddingPercentEscapesUsingEncoding: 是否安全?以下情况有什么后果吗?

[webView loadURL:[NSURL URLWithString:[textField.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]

谢谢!

编辑:我所说的“安全”是指虽然这适用于包含 Unicode 字符的 URL,但它仍然适用于“正常”URL 吗?

编辑2:如果这是“安全”的,为什么它不是默认行为?

最佳答案

由于我的问题没有其他答案,我决定使用以下 - (NSURL *)URLValue 方法而不是 - (NSURL *)URLWithString: 作为安全措施:

- (NSURL *)URLValue {
NSURL *URL = [NSURL URLWithString:self];

if (URL) return URL;

return [NSURL URLWithString:[self stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}

关于iphone - [NSURL URLWithString :stringContainingSpecialCharacters],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4796507/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com