字符串中的Unicode字符 - iphone

时间:2011-03-14 00:53:26

标签: iphone nsstring superscript

我正在研究数学应用,需要将指数输出到屏幕上。

我发现此代码可以正常运行:

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前放置一个额外的角色才能识别吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:21)

\ uXXXX在编译时被转换为unicode,所以你不会期望通过读取.plist来神奇地转换它。

尝试在“文本模式”下打开Xcode中的plist文件(右键单击plist文件,打开为 - >计划文本文件),然后使用表单文本编辑所需的字符串以包含特殊字符:

⁰

而不是您在代码中使用的通常\u2070。然后,如果你保存你的plist,关闭它,然后通过双击再次打开它,你会看到通常的plist编辑器视图,它将包含你的特殊字符。

或者,考虑使用OS X的字符查看器(也就是字符调色板)将文本直接输入到XCode中的plist编辑器中。 More info.