如何在iphone上解码utf8 NSstring?

时间:2009-12-05 22:24:50

标签: iphone cocoa cocoa-touch

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

我试过了,但它不起作用:

NSString *decodedString = [NSString stringWithUTF8String:[encodedString cStringUsingEncoding:[NSString defaultCStringEncoding]]];

我该怎么做?

由于

1 个答案:

答案 0 :(得分:7)

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

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

除了initWithUTF8String:之外的所有这些都要求您指定编码(initWithUTF8String:按定义执行),除initWithData:encoding:之外的所有编码都在自动释放便利版本中{{1}而不是+stringWith…)。