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

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

4

1 回答 1

0

我调整了你的代码

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

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

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)

据推测,所有支持的编码都没有本地化名称。

于 2013-03-08T15:11:04.753 回答