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甚至更不正确。原始字符串没有任何百分比转义可替换。因此,它不是您问题中所述的完美字符串。您可以使用查看字符串中的不可见字符。