您需要使用
CFStringTransform
转换unescape unicode字符。
CFStringTransform
可以在希腊语和拉丁语(或任何已知脚本)之间执行真正的魔术般的音译,但它也可以用于执行平凡的任务,如从服务器上删除字符串:
NSString *str=@"\\u3060\\u3044\\u3053\\u3093\\u3001\\u5927\\u6839\\n";
NSString *convertedString = [str mutableCopy];
CFStringRef transform = CFSTR("Any-Hex/Java");
CFStringTransform((__bridge CFMutableStringRef)convertedString, NULL, transform, YES);
NSLog(@"convertedString: %@", convertedString); //convertedString: ã ããããå¤§æ ¹\n
CFStringTransform
真的很强大。它支持许多预定义的转换,如大小写映射、规范化或unicode字符名转换。您甚至可以设计自己的转换。
OS X 10.11和iOS 9将以下方法添加到Foundation中:
- (nullable NSString *)stringByApplyingTransform:(NSString *)transform reverse:(BOOL)reverse;
以下是使用上述方法的代码:
NSString *convertedString = [str stringByApplyingTransform:@"Any-Hex/Java" reverse:YES];
NSLog(@"convertedString: %@", convertedString); //convertedString: ã ããããå¤§æ ¹\n