- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设,我有一个地址栏,它是一个名为 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/
我对 Facebook 页面的操作有疑问。 currentVriend 是一个 NSObject 类。 我收到错误:方法调用的参数太多,预期 1 有 2 -(void)goFB { NSURL
假设,我有一个地址栏,它是一个名为 textField 的 UITextField 和一个名为 webView 的 UIWebView。大多数情况下,以下代码有效: [webView loadURL:
我正在尝试从这样的字符串构建NSURL: NSString *urlString = self.providerData[@"LogoUrl"]; NSURL *url = [NSURL URLWit
我正在使用 QLPreviewController 查看 word、excel、pdf 等。问题是文件在服务器中,所以我需要从某个 URL 下载它。 我正在使用这段代码: NSURL *dLurl =
我正在启动一个 iOS 项目,其中包括从网页中解析一些数据。我正打算使用 我开始使用“http://www.facebook.com”。作为我的测试用例,以及 XPath(通过 Hpple 使用 Li
我尝试将 NSString 转换为 NSURL,但是我收到了截断的 url。 NSURL *url = [NSURL fileURLWithPath:music.url]; 如果我制作 NSLog m
我有这个代码: NSString *logsPath = [dataDirectoryPath stringByAppendingPathComponent:@"Logs"]; 哪个返回: /var/
这可能很容易,但我似乎不明白为什么 URLWithString: 在这里返回 nil。 //localisationName is a arbitrary string here NSString*
请参阅以下代码: UIImage *image; NSString *str = [[[Data getInstance]arrPic]objectAtIndex:rowIndex]; NSLog(s
由于某种原因获取资源的 URL 时出现问题:此代码位于 viewDidLoad 中,并且在其他应用程序中有效,但由于某种原因在此处不起作用: NSString* audioString = [[NSB
我被困在 NSURL 类 URLWithString 的一个非常明显的方法中 我正在传递一个 string 并在创建 URL 它返回 nil,我的 string 是完美的。当我在浏览器中使用相同的字符
我在 iOS 中构建了一个翻译应用程序。该应用程序使用 Yandex 翻译 api。我遵循了本教程:http://www.raywenderlich.com/5492/working-with-jso
我想从 ios 应用程序上传一个图像(UIImage)到 django 网站。(那里有表单和提交按钮,就像普通网页一样。) 所以我决定为此使用 ASIFormDataRequest。 (我是菜鸟,我做
我使用此代码从 URL 加载 UIImage: NSURL *imageURL = [NSURL URLWithString:@"http://testwebsite.com/image.png"
简而言之,[NSURL URLWithString:] 似乎引发了异常。根据文档“如果字符串格式错误,则返回 nil”。没有提到在任何情况下都会引发异常。除此之外,在将字符串转换为 URL 之前,我对
这是我在 StackOverflow 上发布的第一篇文章,如果我的请求格式不正确,请原谅。 我正在尝试使用以下行将 NSString 类型的变量加载到 NSURL 中: audioPlayer = [
尝试将我的 NSString 传递给 URLWithString 但没有出现 url: //here i get my url from my API and replacing tags NSStr
我正在从 API 接收图像的 url,我想在 Collection View 中显示这些图像。 这是我的代码 NSString *str = [imgArray objectAtIndex:index
我的代码是这样的: NSString *urlStr = [NSString stringWithFormat:@"https://xxx.xxx.xx.xx/Pages/Service/FMServ
这是我的代码, for (int i=0; i<=[selfLinksArray count]; i++) { NSString *temp = selfLinksArray[i];
我是一名优秀的程序员,十分优秀!