我必须从Iphone应用程序将数据发布到php页面,所以我需要正确编码参数,转换特殊字符...
特别是我需要发送iPhone的UDID.
我在网上找到了许多帮助编码String作为参数传递,但我得到一个奇怪的错误.
我正在使用这个功能:
- (NSString *)URLEncodeString:(NSString *)string {
NSString *result =
(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)string, NULL, CFSTR("'\"?=&+<>;:-"), kCFStringEncodingUTF8);
return [result autorelease];}
Run Code Online (Sandbox Code Playgroud)
它似乎是正确的,但当我使用它时,结果不是我所期望的.
这是代码:
UIDevice *device = [UIDevice currentDevice];
NSString *uniqueIdentifier = [device uniqueIdentifier];
NSLog(uniqueIdentifier);
NSLog([self URLEncodeString:uniqueIdentifier]);
Run Code Online (Sandbox Code Playgroud)
这是我点击此代码时生成的日志:
2010-06-23 21:58:51.671 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:58:51.672 provaNavigation[2343:20b] 0000000010003900009080176010001273086780001283520013775CE6D2
Run Code Online (Sandbox Code Playgroud)
然后再次:
2010-06-23 21:59:25.614 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:59:25.615 provaNavigation[2343:20b] 000000001000390000908192801000-18000912258750013775CE6D2
Run Code Online (Sandbox Code Playgroud)
然后再次:
2010-06-23 21:59:40.848 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:59:40.849 provaNavigation[2343:20b] 000000001000390000908866081000-18000912239630013775CE6D2
Run Code Online (Sandbox Code Playgroud)
然后再次...
我每次都会获得不同的值,并且永远不会使用正确的%编号进行更正.