0

我正在尝试将登录凭据传递给我的 iPhone 应用程序中的 PHP 脚本。当我使用特殊字符提取密码时,密码缺少某些字符,尤其是百分号。我正在尝试对文本进行编码,但即使在我发送它之前,百分号也丢失了。

//p_field is a UITextField holding the password: !@#$%^&*()
NSString *tmpPass = [p_field.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSLog(p_field.text);
NSLog(tmpPass);

这是控制台中显示的内容:

!@#$^&*()

!@2259.719281E-314&*()

有什么理由会放弃百分号吗?

4

2 回答 2

2

NSLog 的第一个参数是格式字符串,'%' 在格式字符串中具有特殊含义。您应该改为执行以下操作:

NSLog("p_field.text = %@", p_field.text);
NSLog("tmpPass = %@", tmpPass);

(这%@是用于显示 NSString 的格式字符串序列。)

于 2010-04-28T03:14:44.860 回答
0

我在FooBabel.com上对其进行了测试,它应该看起来像:已 %21%40%23%24%25%5E%26*%28%29编码。

于 2011-04-05T17:20:26.083 回答