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);

そのため、16 進数と 10 進数で 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)

おそらく、サポートされている無数のエンコーディングすべてに対応するローカライズされた名前はありません。

于 2013-03-08T15:11:04.753 に答える