如何在 iOS 中将unicode
范围 附加U+0000
到U+0099
NSString。我已使用以下链接作为参考http://en.wikipedia.org/wiki/List_of_Unicode_characters
问问题
274 次
2 回答
0
我不确定这是 100% 正确的解决方案,但它有效:
NSString *uniString = [NSString stringWithFormat:@"%C", (unichar)0x0021];
0x0021
你的 unicode 字符代码在哪里。
您可以使用此循环对其进行测试:
for (unichar ch = 0x0000; ch <= 0x0099; ch++) {
NSString *uniString = [NSString stringWithFormat:@"%C", ch];
NSLog(@"%@", uniString);
}
于 2013-05-23T07:47:30.113 回答
0
尝试使用这个....
NSString
使用 UTF-16 在内部存储代码点,因此您要查找的范围内的代码点(U+1F300 到 U+1F6FF)将存储为代理对(四个字节)。尽管它的名字,characterAtIndex:(和 unichar)不知道代码点,并且会给你它在你给它的索引处看到的两个字节(你看到的 55357 是 UTF-16 中代码点的主要代理)。
要检查原始代码点,您需要将字符串/字符转换为 UTF-32(直接对其进行编码)。为此,您有几个选择:
1) 获取构成代码点的所有 UTF-16 字节,并使用此算法或CFStringGetLongCharacterForSurrogatePair将代理对转换为 UTF-32。
2) 使用 dataUsingEncoding: 或getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
将 NSString 转换为 UTF-32,并将原始字节解释为 uint32_t。
3)使用像ICU这样的库。
于 2013-05-23T07:05:49.690 回答