Iphone 从特殊字符转换字符串

Iphone 从特殊字符转换字符串,iphone,ios,objective-c,nsstring,nsstringencoding,Iphone,Ios,Objective C,Nsstring,Nsstringencoding,我使用社交框架获取信息并获取facebook信息,当我获得另一种语言的用户名,即Denis,它会告诉我\U00e6\U00f8\U00e5,如何将这个字符串转换为可读字符串,即Denis?我认为这些字符是Unicode字符,你可以尝试类似的方法将它们转换为UTF-8 尝试以下代码 你得到的绳子 NSString*myStr=@ 使用这个代码 const wchar_t *myResulr = (const wchar_t*)[myStr cStringUsingEncoding:NSUTF16S

我使用社交框架获取信息并获取facebook信息,当我获得另一种语言的用户名,即Denis,它会告诉我\U00e6\U00f8\U00e5,如何将这个字符串转换为可读字符串,即Denis?

我认为这些字符是Unicode字符,你可以尝试类似的方法将它们转换为UTF-8


尝试以下代码

你得到的绳子

NSString*myStr=@

使用这个代码

const wchar_t *myResulr = (const wchar_t*)[myStr cStringUsingEncoding:NSUTF16StringEncoding];
NSLog(@"\n str2 = %S",myResulr);
这也可能是

试试这个

NSString *str = [NSString stringWithUTF8String:"\u00e6\u00f8\u00e5"];
NSLog(@"%@", str);

我找到了这个解决我问题的有效方法

尝试:


如果这只是NSLog输出,则保持原样。打印时它只是转义的-字符串包含正确的Unicode字符。@H2CO3我在创建配置文件时必须使用此用户名,所以我不能忽略它。毕竟,它只是NSLog输出吗?然后你可以忽略它。我只是在NSLog中检查响应,它会显示我所说的。我实际想要的是,使用该响应在我创建的个人资料注册视图中显示。那么我如何转换它呢?@Harin:\U00e6\U00f8\U00e5是æå,这是你的真实输出吗?-如果显示代码,您可以获得更好的帮助:如何获取字符串?如何打印字符串?NSUTF16StringEncoding提供了一个unichar序列,它是16位的,但wchar\u t是32位的,因此无法工作。-请注意,链接中的函数CFStringTokenizerCopyBestStringLanguage猜测的是语言,而不是编码。为什么将NSString转换为UTF-8并返回NSString会有所帮助?这正好给出了原始字符串。
int main (int argc, const char * argv[])
{
    @autoreleasepool {
        NSString *name2escaped = @"\U00e6\U00f8\U00e5";
        NSString *name2 = [NSString
            stringWithCString:[name2escaped cStringUsingEncoding:NSUTF8StringEncoding]
            encoding:NSNonLossyASCIIStringEncoding];
        NSLog(@"name2 = %@", name2);
    }
    return 0;
}
NSString *str = @"\U00e6\U00f8\U00e5";

NSString *string = [NSString stringWithCString:[str UTF8String]  
                        encoding:NSUTF8StringEncoding];

NSLog(@"string: %@", string);