如何在iphone上解码utf8 NSstring?

avn*_*nic -1 iphone cocoa cocoa-touch

我有一个用UTF8编码的NSstring.我想解码它.

我试过这个,但它不起作用:

NSString *decodedString = [NSString stringWithUTF8String:[encodedString cStringUsingEncoding:[NSString defaultCStringEncoding]]];
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

谢谢

Pet*_*sey 7

发送cStringUsingEncoding:encodedString只能encodedString是NSString对象才能工作.拥有一个NSString对象是你想要达到的目标.此外,该方法不解码字符串,它使用您要求的编码对字符串进行编码; 因此,在您显示的代码中,您要求(已编码的)字符串以某种随机编码(默认C字符串编码)进行编码,然后尝试将结果解码为UTF-8.那不行.

您没有指定您正在使用的类型encodedString.无论哪种方式,您都需要通过传递encodedString及其编码来创建NSString对象.

所有这些除了initWithUTF8String:要求你指定编码(initWithUTF8String:根据定义)和所有这些,除了initWithData:encoding:进入自动释放便利版本(+stringWith…而不是-initWith…).