IOS 獲取外網IP 及 GBK 轉碼 (UTF-8)
- (void)viewDidLoad
{
[superviewDidLoad];
NSURL *url = [NSURLURLWithString:@"http://fw.qq.com/ipaddress"];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
[request setHTTPMethod:@"GET"];
[requestsetTimeoutInterval:8.0f];
NSHTTPURLResponse *response;
//返回的是GBK編碼
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseerror:nil];
if (200 == [response statusCode]) {
//直接轉,將會產生亂碼或者字串為空 NSUTF8StringEncoding
NSString *temp1 = [[NSStringalloc] initWithData:returnDataencoding:NSUTF8StringEncoding];
// NSASCIIStringEncoding
NSString *temp2 = [[NSStringalloc] initWithData:returnDataencoding:NSASCIIStringEncoding];
NSLog(@"---------temp1---%@",temp1);
NSLog(@"---------temp2---%@",temp2);
NSLog(@"-------------------------------------");
// 一、 GBK編碼 (通過CFStringCreateWithBytes轉碼)
CFStringRef GBKCFstirng =CFStringCreateWithBytes(
NSString *gbkNSString1 = (NSString *)GBKCFstirng;
NSLog(@"--gbkNSString1---%@",gbkNSString1);
// 二、 GBK編碼 (通過CFStringConvertEncodingToNSStringEncoding轉碼)
NSStringEncoding nsEncoding =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *gbkNSString2 = [[NSString alloc] initWithData:returnData encoding:nsEncoding];
NSLog(@"--gbkNSString2---%@",gbkNSString2);
NSLog(@"-------------------------------------");
//轉成NSUTF8StringEncoding的字串
NSData *tempdata = [gbkNSString1 dataUsingEncoding:NSUTF8StringEncoding];
NSString *UTF8_NSString = [[NSStringalloc] initWithData:tempdataencoding:NSUTF8StringEncoding];
NSLog(@"--UTF8_NSString--%@",UTF8_NSString);
}
}