2011-03-14 105 views
9

我正在研究數學應用程序,需要將指數輸出到屏幕上。字符串中的Unicode字符 - iphone

我發現這個代碼將工作:

NSLog(@"x\u2070 x\u00B9 x\u00B2 x\u00B3 x\u2074 x\u2075 x\u2076 x\u2077 x\u2078 x\u2079"); 

它顯示:x⁰X 1 X 2 X 3 X 4 X 5 X 6x⁷x⁸x⁹

這也適用於:

NSString *testString = @"8.33x10\u00B3"; 
NSLog(@"test string: %@", testString); 

它顯示:測試字符串:8.33x10³

即使將其設置爲標籤,也能在iP上正確顯示磨練屏幕:

NSString *testString = @"8.33x10\u00B3"; 
Answer1Label.text = testString; 

然而,當我拉弦從的.plist,上面寫着「8.33x10 \ u00B3」,並在屏幕上顯示出來,它只是顯示爲「8.33x10 \ u00B3」,而不是8.33 x10³

有沒有額外的字符需要放在\ u00B3前面才能識別?

感謝您的幫助!

回答

20

\ uXXXX在編譯時轉換爲unicode,所以您不會期望通過讀取.plist進行神奇轉換。

嘗試在「文本模式」中打開Xcode中的plist文件(右鍵單擊您的plist文件,打開爲 - >計劃文本文件),然後使用以下格式的文本編輯所需的字符串以包含特殊字符:

⁰ 

而不是您通常使用的\u2070代碼。然後,如果你保存你的plist,關閉它,然後通過雙擊再次打開它,你會看到通常的plist編輯器視圖,它將包含你的特殊字符。

或者,考慮使用OS X的字符查看器(又名字符調板)將文本直接輸入到XCode中的plist編輯器中。 More info.

+0

我很感謝您的回覆,這對於爲什麼它不起作用很有意義。不幸的是,我不太瞭解XML,無法知道如何使用您的建議使其工作。爲了讓它現在可以工作,我已經硬編碼了代碼中需要指數的特定問題。 – RanLearns 2011-03-14 15:04:47

+0

@ObjectiveFlash我已經澄清了我的答案和更多信息。 – occulus 2011-03-15 09:23:42

+0

@occulus非常感謝您使用plist文件編寫unicode這種方法! – buk 2012-08-01 10:09:14