在苹果文档中,我可以看到有一种方法可以将UTF8字符串转换为ASCII字符串,如下所示
NSData *asciiData = [theString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *asciiString = [[NSString alloc] initWithData:asciiData encoding:NSASCIIStringEncoding];
但我的应用需要一个TIS-620字符串才能发布到网站上,所以我尝试做同样的事情
NSData *asciiData = [newPost.header dataUsingEncoding:kCFStringEncodingMacThai allowLossyConversion:YES];
NSString *asciiString = [[NSString alloc] initWithData:asciiData encoding:kCFStringEncodingMacThai];
NSLog(@"%@", asciiString);
我得到的输出是这样的???????????。
有谁知道如何正确地将NSString转换为TIS-620? 非常感谢。
答案 0 :(得分:2)
首先,TIS-620是ISO-8859-11的子集,因此您应该使用字符串编码kCFStringEncodingISOLatinThai而不是kCFStringEncodingMacThai。
此外,CF编码不能直接用于解码NSString。您需要先将CF编码转换为NS编码。
NSStringEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingISOLatinThai);
NSData *asciiData = [newPost.header dataUsingEncoding:enc allowLossyConversion:YES];