我从WebService保存数据,并且某些信息具有 ASCII 字符,例如‘
or例如,那些 2 没有。#038;
\u00f3
为什么是这样?我理解正确吗?
谢谢。
我从WebService保存数据,并且某些信息具有 ASCII 字符,例如‘
or例如,那些 2 没有。#038;
\u00f3
为什么是这样?我理解正确吗?
谢谢。
由于您正在从 WebService 保存数据,因此您可以将这个NSString 类别用于 HTML,如本文所述:Objective-C:如何替换 HTML 实体?
(Html 实体类似于:‘
- 更多关于wikipedia的内容)
该类别中可用的方法有:
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
[NSAttributedString initWithHTML: documentAttributes:]
从包含在给定数据对象中的 HTML 中初始化并返回一个新的 NSAttributedString 对象。
NSData* htmlData = [yourHTMLString dataUsingEncoding:NSUTF8StringEncoding]
NSAttributedString* theAttributedString = [[NSAttributedString alloc] initWithHTML:htmlData documentAttributes:NULL];
我一直在使用它,而且效果很好。我什至用它做了一个宏:
#define html2AttributedString(htmlString) \
[[[NSAttributedString alloc] initWithHTML:[(htmlString) dataUsingEncoding:NSUTF8StringEncoding] \
documentAttributes:NULL] autorelease]
用法:
NSAttributedString* attributedString = html2AttributedString(yourNSString);
然后,您可以为颜色、对齐方式、字体等制作宏…</p>
对于 iOS,您可以查看他们为您提供替代品的此页面。
我们的 initWithHTML 方法旨在完美匹配 Mac 版本的输出。这对于角色来说是可以实现的,并且我已经进行了单元测试,以确保它保持完美。关于属性,有很多事情必须在 iOS 上稍有不同才能实现相同的外观。我不会用那里的细节来打扰你。