将类似“\ udddd \ udddd”的unicode字符串转换为人类可读的字符串

时间:2014-04-21 09:06:49

标签: objective-c cocoa

现在我在Xcode中有一个像这样的字符串“\ u7c6e \ u54c1 \ u23a8 \ u8357 / \ u4e01 \ u8f77 \ u7ba2 \ u7409”,然后我想把它转换为“箩品⎨荗/丁轷箢琉” Objective-C的。

但我找不到任何API来完成。 我该怎么办?获取字符串内容而不是字符串文字。

2 个答案:

答案 0 :(得分:1)

我的应用程序不需要转换,我的情况是:我有来自服务器的响应

name = "\U672a\U6765\U822a\U8def";

我只是打印日志:

NSString *n = dict[@"name"];
NSLog(@"%@",n); //未来航路

我认为你的申请是一样的。

答案 1 :(得分:0)

正确的答案是:

    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];