0

我很难让我NSURL的工作,当我在转换为URL它之前创建最终字符串时,会在字符串的末尾添加不需要的字符,为什么会发生这种情况,我该如何解决?

这是我的代码:

NSString *remotepathstring = [[NSString alloc] init];
remotepathstring=newdata.remotepath;
NSLog(@"remotepathstring = %@",remotepathstring);

NSString *remotepathstringwithescapes = [remotepathstring stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"remotepathstring = %@",remotepathstringwithescapes);

remotepathURL =[NSURL URLWithString:remotepathstringwithescapes];
NSLog(@"RemotePathUrl=%@",remotepathURL);

日志输出如下:

"remotepathstring = http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf‎"

"remotepathstring = http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf%E2%80%8E"

"RemotePathUrl=http://nalahandthepinktiger.com/wp-content/uploads/nalah-sheet-5.pdf%E2%80%8E"
4

1 回答 1

0

该序列%E2%80%8E是一个 Unicode LEFT-TO-RIGHT MARK。这存在于您的原件remotepathstring中,但在通过 打印出来时不可见NSLog

问题变成了:首先如何newdata.remotepath填充?在某处,听起来您需要对输入字符串进行一些额外的清理以去除这样的字符。

与核心问题无关,您似乎是 Objective-C 的新手。这段代码是多余和浪费的:

NSString *remotepathstring = [[NSString alloc] init];
remotepathstring=newdata.remotepath;

您创建一个字符串,只是立即将其丢弃并用另一个替换。如果您不使用 ARC,则会出现额外的泄漏问题!而是这样做:

NSString *remotepathstring = newdata.remotepath;
于 2013-05-06T22:21:21.407 回答