Ios NSURL URLWithString返回nil
我被困在一个非常明显的Ios NSURL URLWithString返回nil,ios,objective-c,nsurl,nsstringencoding,Ios,Objective C,Nsurl,Nsstringencoding,我被困在一个非常明显的NSURL类URLWithString方法中,我正在传递一个字符串,当创建URL时,它返回nil,我的字符串非常完美。当我在浏览器中使用相同的字符串时,它工作正常。我正在使用以下方法将NSString转换为NSURL: NSURL *url = [NSURL URLWithString:urlString]; //urlString is my perfect string 我还尝试先使用以下代码对字符串进行编码 NSURL *url = [NSURL URLWithSt
NSURL
类URLWithString
方法中,我正在传递一个字符串
,当创建URL
时,它返回nil
,我的字符串
非常完美。当我在浏览器中使用相同的字符串时,它工作正常。我正在使用以下方法将NSString
转换为NSURL
:
NSURL *url = [NSURL URLWithString:urlString];
//urlString is my perfect string
我还尝试先使用以下代码对字符串进行编码
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
// using this line my output string when I log url is "url%10%10%10%10%10%10..."
%10成为我的url的后缀,重复次数超过100次
。
如果有人知道什么是%10
,或者可以做些什么来克服这个问题
这是我的urlString
:尝试下面的解决方案
NSURL *url = [NSURL URLWithString:[urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
检查一下 是的,由于从internet站点复制,我的字符串中出现了许多无法识别的字符,如果遇到此问题的任何读者可以复制并粘贴您的字符串,请参见计数。并确认。
谢谢使用下面的代码来解决您的问题
NSString *str = msgDetail[@"thumbnail"];
NSString* webStringURL = [str stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSURL* url = [NSURL URLWithString:webStringURL];
urlString
的确切值是多少?%10
是十六进制代码。这是十进制的16
,这是一个奇怪的控制字符。显示urlString
的来源,并再次显示其确切值。请查看我编辑的答案,我发布了一张图片,在评论中显示了我的url字符串,网站上显示的字符太多,请添加以下代码:NSLog(@“urlString=\“%@\”,urlString)代码>然后使用该日志语句的输出更新您的问题。%10=“数据链接转义”根据。您是否尝试使用stringByTrimmingCharactersInSet:
?顺便说一句,如果你已经找到了一个解决方案(基于你的评论),我想你可以发布你的解决方案来帮助其他人。不,%10
不是“@”,而“@”是%40
。你没有正确地阅读图表<代码>%10
是十六进制值10,它是十进制值16。这是“数据链路转义”控制字符。您在回答中发布的“解决方案”是OP在他们的问题中已经显示的。@r我是否正确地看到了问题。.它有StringByAddingPercentsEscapeSusingEncode,但在我的回答中我应用了不同的方法,即:;StringByReplacingPercents转义使用编码。在投票否决之前请仔细检查…@SyedAliSalman。。正确检查你所做的尝试。。您尝试使用StringByAddingPercentescapesusingEncode使用StringByReplacingPercentescapesusingEncode,但在我的回答中,我使用了StringByReplacingPercentescapesusingEncode。。正确检查并否决投票。。。!使用StringByRePlacingPercentEscapeSusingEncode甚至更不正确。原始字符串没有任何百分比转义可替换。因此,它不是您问题中所述的完美字符串。您可以使用查看字符串中的不可见字符。