我正在研究数学应用,需要将指数输出到屏幕上。
我发现此代码可以正常运行:
NSLog(@"x\u2070 x\u00B9 x\u00B2 x\u00B3 x\u2074 x\u2075 x\u2076 x\u2077 x\u2078 x\u2079");
显示:x⁰x¹x²x³x⁴x⁵x⁶x⁷x⁸x⁹
这也有效:
NSString *testString = @"8.33x10\u00B3";
NSLog(@"test string: %@", testString);
显示:test string:8.33x10³
即使将其设置为标签,也会在iPhone屏幕上正确显示:
NSString *testString = @"8.33x10\u00B3";
Answer1Label.text = testString;
然而,当我从一个名为“8.33x10 \ u00B3”的.plist中拉出字符串并将其显示在屏幕上时,它只显示为“8.33x10 \ u00B3”而不是8.33x10³
我需要在\ u00B3前放置一个额外的角色才能识别吗?
感谢您的帮助!
答案 0 :(得分:21)
\ uXXXX在编译时被转换为unicode,所以你不会期望通过读取.plist来神奇地转换它。
尝试在“文本模式”下打开Xcode中的plist文件(右键单击plist文件,打开为 - >计划文本文件),然后使用表单文本编辑所需的字符串以包含特殊字符:
⁰
而不是您在代码中使用的通常\u2070
。然后,如果你保存你的plist,关闭它,然后通过双击再次打开它,你会看到通常的plist编辑器视图,它将包含你的特殊字符。
或者,考虑使用OS X的字符查看器(也就是字符调色板)将文本直接输入到XCode中的plist编辑器中。 More info.