0
NSURL *url = [NSURL URLWithString:[[NSString stringWithFormat:@"www.mywebsite.com/setnumber.asmx?myNumber=%@", myNumber.text]
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[NSURLConnection alloc] initWithRequest:request delegate:self];

当我NSLog,网址我在下面看到

www.mywebsite.com/setnumber.asmx?myNumber=+96512345678

但是当我查看数据库时,我没有看到+. 我只看到数字为 96512345678 知道为什么会这样吗?

4

1 回答 1

0

在 URL 中,+表示(空格)。为了传输字符,您必须对其进行 URL 编码。

不幸的是,您使用的方法对字符串的 URL 编码不够硬;相反,您需要一些类似的东西:

NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
  NULL,
  (CFStringRef)unencodedString,
  NULL,
  (CFStringRef)@"!*'();:@&=+$,/?%#[]",
  kCFStringEncodingUTF8
);

解码使用

NSString *unencodedUrlString = [@"http://www.demo.com/2%2C7"
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2013-10-28T12:51:23.997 回答