caj*_*iko 1 unicode objective-c nsstring uilabel ios
现在我有一系列的unicode数字,我想在UILabel中显示它们,如果我对它们进行硬编码,我可以显示它们,但是那太慢了,所以我想用一个变量代替它们,然后更改变量并获取相关的字符。例如,现在我知道unicode是U + 095F,我想在UILabel中显示U + 095F到U + 096f的范围,我可以使用诸如
NSString * str = [NSString stringWithFormat:@“ \ u095f”];
但我想这样做
NSInteger hex = 0x095f;
[NSString stringWithFormat:@“ \ u%ld”,(long)hex];
我可以像使用一样自动更改十六进制@"%ld", (long)hex,所以有人知道如何实现吗?
您可以使用十六进制字节的缓冲区来初始化字符串(您只需提供其指针即可)。重点是,要注意的重要一点是您提供了要应用的字符编码。具体来说,您应该注意字节顺序。
这是一个例子:
UInt32 hex = 0x095f;
NSString *unicodeString = [[NSString alloc] initWithBytes:&hex length:sizeof(hex) encoding:NSUTF32LittleEndianStringEncoding];
Run Code Online (Sandbox Code Playgroud)
请注意,%C只要您将其用于16位unicode字符,就可以使用诸如格式之类的解决方案。像表情符号这样的32位unicode字符(例如:0x1f601、0x1f41a)无法使用简单的格式设置。
| 归档时间: |
|
| 查看次数: |
1378 次 |
| 最近记录: |