1

NSURLRequest例如,每当字符串包含 % 时,我都会遇到问题并进行 POST。

在我的网站上,我可以看到编码是ISO-8859-1,utf-8出于Accept-Charset某种原因,如果 POST 包含“%&$”等,我将无法使其工作。似乎它不会使用 UTF-8 编码对其进行编码。我在下面的代码中做错了吗?

NSData *postData = [credentials dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"http://www.website.com/login.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
4

1 回答 1

0

您可能想听听“内容传输编码”。

内容类型:文本/纯文本;字符集=UTF-8

内容传输编码:二进制

或者如果您对这些字符特别有问题

内容传输编码:base64

编辑:“application/x-www-form-urlencoded”使“%”符号发生。

于 2010-01-26T20:18:50.007 回答