2012-01-01 30 views
2

我需要製作化學公式(SO4^2-),並且製作下標和上標的最簡單方法似乎是添加UTF-8字符,因爲NSAttributedString的KCTSuperscriptAttributeName:屬性不起作用。如何將UTF-8字符添加到NSString?

是否有可能使一個正常字符和utf-8字符的nsstring?

謝謝

回答

3

根據NSString Reference「實現NSString來表示一個Unicode字符數組,換句話說,一個文本字符串」。

這將很方便寫入如下: NSString * myStr = @「任何你想要的Unicode字符」;

只要確保您的默認文本編碼是unicode。

+0

如何確保我的默認文本編碼是unicode? – Mahir 2012-01-01 20:24:43

+0

另外,我不太習慣utf-8字符,所以我不確定我是否正確讀取它,但它說[這裏](http://www.macosxguru.net/article.php?story= 20050330194837154),您不應該將字符直接複製並粘貼到字符串中。真的嗎? – Mahir 2012-01-01 20:47:06

+0

嗨Mahir,關於第一個問題,你可以在Xcode的首選項中找到該設置 - 在「文本編輯」選項卡中。第二,該網站是在2005年編寫的,[NSString](http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html)是在2011年更新。現在,您可以直接使用utf-8。例如:NSString * utfstr = @「中文」; NSLog(@「utf str%@」,utfstr);結果也應該是「utf str English」。 – 2012-01-02 00:20:04

3

是的。我假設你知道制定NSString的常規方法 - 這裏有一種方法可以從utf8字符串創建NSString-[NSString initWithUTF8String:]

4

賈斯汀的回答是不錯,但我想你可能真的要尋找的是NSAttributedString(文檔鏈接你)或NSMutableAttributedString,在這裏你可以添加上標,下標,而NSString本身不能處理其他字符樣式。

看看這裏或通過Google的其他NSAttributedString問題,如this potentially related questionor this one

希望這可以幫助你!

+0

第二個鏈接實際上是我的另一個問題。我查看了NSAttributedString文檔,但通過互聯網搜索,我發現人們一直在說NSAttributedString的kSuperscriptAttributeName屬性不能正常工作 – Mahir 2012-01-01 07:18:33

+0

我從來沒有聽說過上標不起作用,但我知道[NSAttributedString只適用於iOS 4.0及更新版本](http://stackoverflow.com/questions/5905883/superscripted-ordinal-suffix-in-nsstring)。試試看,讓我知道它是否適合你。 – 2012-01-01 16:31:39

+0

答案儘管回答者可能沒有注意到,但是使用'NSSupersciptAttributeName',它是爲Mac OSX而不是iOS(http://stackoverflow.com/questions/7121449/nssuperscriptattributename-show-error) – Mahir 2012-01-01 19:24:27