Eim*_*tas 5 objective-c nsstring
我有一个unicode char"代码"列表,我想用\u转义序列(例如\ue415)打印,只要我尝试用这样的东西组成它:
// charCode comes as NSString object from PList
NSString *str = [NSString stringWithFormat:@"\u%@", charCode];
Run Code Online (Sandbox Code Playgroud)
编译器警告我不完整的字符代码.任何人都可以帮我完成这项琐碎的任务吗?
Vla*_*mir 14
我认为你不能按照你尝试的方式做到这一点 - \uxxx转义序列用于表示常量是一个unicode字符 - 并且转换是在编译时处理的.
你需要的是将charCode转换为整数并将该值用作格式参数:
unichar codeValue = (unichar) strtol([charCode UTF8String], NULL, 16);
NSString *str = [NSString stringWithFormat:@"%C", charCode];
NSLog(@"Character with code \\u%@ is %C", charCode, codeValue);
Run Code Online (Sandbox Code Playgroud)
对不起,这不是从HEX表示中获取int值的最佳方法,但这是第一个想到的
编辑:似乎NSScanner类可以NSString十六进制表示扫描数字:
unichar codeValue;
[[NSScanner scannerWithString:charCode] scanHexInt:&codeValue];
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |