localizedNameOfStringEncoding不起作用

时间:2013-01-16 03:30:40

标签: iphone ios string nsstring

const NSStringEncoding *enc = [NSString availableStringEncodings];
while (*enc != 0) {
    NSString *name = [NSString localizedNameOfStringEncoding:*enc];
    NSLog(@"%@ %d",name, *enc);
    enc++;
}

名称为空,我正在使用IOS 6,这是一个错误吗?或者我做错了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我调整了你的代码

NSLog(@"%@ %d (0x%x)",name, *enc, *enc);

所以我们可以看到十六进制和十进制的NSStringEncoding。在iOS 6.1 iPhone模拟器上运行测试代码我总共得到88个不同的NSStringEncodings,其中一些返回有意义的localizedNameOfStringEncoding,这些是:

Unicode (UTF-16) 10 (0xa)
Unicode (UTF-7) -2080374528 (0x84000100)
Unicode (UTF-8) 4 (0x4)
Unicode (UTF-32) -1946156800 (0x8c000100)
Unicode (UTF-16BE) -1879047936 (0x90000100)
Unicode (UTF-16LE) -1811939072 (0x94000100)
Unicode (UTF-32BE) -1744830208 (0x98000100)
Unicode (UTF-32LE) -1677721344 (0x9c000100)
Non-lossy ASCII 7 (0x7)

据推测,只有不是所有支持的编码的本地化名称。