Iphone StringByAddingPercentescapesusingEncode不使用带';0';

Iphone StringByAddingPercentescapesusingEncode不使用带';0';,iphone,nslog,Iphone,Nslog,我对stringbyaddingpercentescapesusingencode:方法有一些问题。 下面是发生的情况: 当我尝试使用该方法转换NSString时: "..City=Cl&PostalCode=Rh6 0Nt" 我明白了 "City=Cl&PostalCode=Rh62t" 应该是: "..City=Cl&PostalCode=Rh6%200Nt" 我能做些什么?提前谢谢 对我来说,这是: NSString *s=[@"..City=Cl&P

我对
stringbyaddingpercentescapesusingencode:
方法有一些问题。 下面是发生的情况:

当我尝试使用该方法转换NSString时:

"..City=Cl&PostalCode=Rh6 0Nt"
我明白了

"City=Cl&PostalCode=Rh62t"
应该是:

"..City=Cl&PostalCode=Rh6%200Nt"
我能做些什么?提前谢谢

对我来说,这是:

NSString *s=[@"..City=Cl&PostalCode=Rh6 0Nt" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"s=%@",s);
。。。产出:

s=..City=Cl&PostalCode=Rh6%200Nt

您很可能使用了错误的编码

当您试图将带有ASCII不支持字符的字符串编码为
NSASCIIStringEncoding
时,会发生这种情况


如果字符串可以包含UTF8字符,或者方法将返回
nil
,请确保编码为
NSUTF8StringEncoding

如果字符串始终以“.”开头,则可能会有所帮助。它在iOS 4上也适用(
(gdb)print-[@“0”string通过添加百分比escapesusingencoding:4]
prints
%200
)谢谢您的回复。是的,我意识到我的日志中有个愚蠢的错误。。我让NSLog使用NSLog(str)而不是NSLog(@“%@”,str)对字符串进行编码,这导致控制台上的输出不正确。谢谢最好总是发布日志代码,以便其他人可以看到并捕获这些类型的错误。每个人都制作了它们,但由于某些原因,它们很难确定您是否是编写代码的人。@TechZen StringByAdding Percents Escape使用此方法对空格或所有特殊字符进行编码。