use*_*234 1 unicode objective-c nsstring ios
NSString *string1 = @"\u03C0";
NSLog(@"string1: %@", string1); // result of a Pi symbol
NSString *string2 = @"03C0";
NSString *string3 = [@"\\u" stringByAppendingString:string2];
NSLog(@"string3: %@", string3); // result of \u03C0 but need it to be a Pi symbol as well
Run Code Online (Sandbox Code Playgroud)
我认为string3会给出与string1相同的结果.但事实并非如此.知道如何解决这个问题吗?
当您输入字符串文字时\u9999,编译器会将其视为特殊字符文字.编译器会将该语法直接转换为结果字符.
您string3正在运行时处理.该\u9999语法有在运行时没有任何特殊含义.
你可以这样做:
NSString *string2 = @"03C0";
NSScanner *scanner = [NSScanner scannerWithString:string2];
unsigned int code;
[scanner scanHexInt:&code];
NSString *string3 = [NSString stringWithFormat:@"%C", (unsigned short)code];
NSLog(@"string3: %@", string3);
Run Code Online (Sandbox Code Playgroud)
如果您知道代码,\u03C0那么您可以直接使用它:
NSString *string3 = [NSString stringWithFormat:@"%C", (unsigned short)0x03C0];
NSLog(@"string3: %@", string3);
Run Code Online (Sandbox Code Playgroud)
更好的是,直接输入:
NSString *string3 = @"?";
NSLog(@"string3: %@", string3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4488 次 |
| 最近记录: |