十六进制字符串转换成中文

- (NSString*)stringFromHexString:(NSString*)hexString {  // eg. hexString = @"8c376b4c"
     
    char*myBuffer = (char*)malloc((int)[hexString length] / 2 + 1);
    bzero(myBuffer, [hexString length] / 2 + 1);
    for(inti = 0; i < [hexString length] - 1; i += 2) {
        unsignedintanInt;
        NSString* hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];
        NSScanner* scanner = [[[NSScanneralloc] initWithString:hexCharStr] autorelease];
        [scanner scanHexInt:&anInt];
        myBuffer[i / 2] = (char)anInt;
    }
    NSString*unicodeString = [NSStringstringWithCString:myBuffer encoding:NSUnicodeStringEncoding];
//    printf("%s\n", myBuffer);
    free(myBuffer);
     
    NSString*temp1 = [unicodeString stringByReplacingOccurrencesOfString:@"\\u"withString:@"\\U"];
    NSString*temp2 = [temp1 stringByReplacingOccurrencesOfString:@"\""withString:@"\\\""];
    NSString*temp3 = [[@"\""stringByAppendingString:temp2] stringByAppendingString:@"\""];
    NSData*tempData = [temp3 dataUsingEncoding:NSUTF8StringEncoding];
    NSString*temp4 = [NSPropertyListSerializationpropertyListFromData:tempData
                                                           mutabilityOption:NSPropertyListImmutable
                                                                     format:NULL
                                                           errorDescription:NULL];
    NSString*string = [temp4 stringByReplacingOccurrencesOfString:@"\\r\\n"withString:@"\n"];
     
    NSLog(@"-------string----%@", string); //输出 谷歌
    returnstring;
}


你可能感兴趣的:(十六进制字符串转换成中文)