常有編碼方式有很多種,現在列出之間的轉換方式
NSString To UFT-8
NSString *str2 =@"深"; const char * s = [str2 UTF8String];
出現類似這樣格式的欄位"\\U6df1\\U5733\\U56fd\\U5f00\\U884c01\\U673a\\U623",通常為Unicode碼,轉換測試函數為
- (NSString *)replaceUnicode:(NSString *)unicodeStr { NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"]; NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]; NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""]; NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding]; NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL]; return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"]; }
出現類似這樣格式的欄位"深圳银行",通常為GBK碼,轉換方式為
NSURL *url = [NSURL URLWithString:str2]; NSData *responseData = [NSData dataWithContentsOfURL:url]; NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); NSString *responseString = [[NSString alloc] initWithData:responseData encoding:enc];