1. 程式人生 > >IOS 獲取外網IP 及 GBK 轉碼 (UTF-8)

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(

NULL,[returnDatabytes], [returnData length],kCFStringEncodingGB_18030_2000,false);

        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);       

    }

}