2012-01-01 32 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