2017-08-21 18 views
2

我有一个字符串@“%a9e%b7%cb%ce%d2%a9b%cb%bc%b4%e6”,在线解码是@“〆匪我゜思存”, 我如何使用OC来解码字符串中文?如何用gb2312encode解码字符串到中文的objective-c?

+1

你可以给我在网上解码器,你用 –

+0

' “〆匪我゜思存”'是*不*因为第一和第四个字符(〆和゜)的中国人。 这两个字符在GB 2312中甚至不存在:http://www.khngai.com/chinese/charmap/tblgb.php和https://ideone.com/QcQAyg。 也许它是[GB 18030](https://en.wikipedia.org/wiki/GB_18030)支持你想要的? –

+0

http://tool.chinaz.com/tools/urlencode.aspx – Dragon

回答

0

你可以试试下面的代码。

-(NSString *)EncodeGB2312Str:(NSString *)encodeStr { 
    CFStringRef nonAlphaNumValidChars = CFSTR("![  DISCUZ_CODE_1  ]’()*+,-./:;[email protected]_~"); 
    NSString *preprocessedString = (NSString *)CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)encodeStr, CFSTR(""), kCFStringEncodingGB_18030_2000)); 
    NSString *newStr = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)preprocessedString,NULL,nonAlphaNumValidChars,kCFStringEncodingGB_18030_2000)); 
    return newStr; 
} 

NSString *string = [self EncodeGB2312Str:@"〆匪我゜思存"]; 

NSLog(@"string = %@",string); //output is string = %A9%65%B7%CB%CE%D2%20%CB%BC%B4%E6 
+0

不错,但问题是解码,而不是编码。 –