5

我在 UIWebview 中显示 NSString 以显示带有自定义笑脸(图像)的文本,但我遇到了麻烦,因为 UIWebview 无法检测到特殊字符,如 \n、\r、\t、空格、&、<、> 和更多的字符串。如何将 NSString 转换为 HTML 字符串以加载到 UIWebView 中?

4

4 回答 4

3

没有内置的解决方案。您必须对 HTML 实体进行编码。有一个名为NSString-HTML的开源项目可能适合您的需求。

这里还有一个很好的 NSString 类别,它是基于Google 的 Toolbox 的

于 2013-04-08T09:43:35.523 回答
1

实际上有一个内置的解决方案......在 NSAttributedString 中。这是 NSString 的一个类别,它使它变得容易:

@interface NSString (HTMLString)
- (NSString *)HTMLString;
@end

@implementation NSString (HTMLString)
- (NSString *)HTMLString {
    NSDictionary * const exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
    NSAttributedString *attributed = [[NSAttributedString alloc] initWithString:self];
    NSData *htmlData = [attributed dataFromRange:NSMakeRange(0, attributed.length) documentAttributes:exportParams error:nil];
    return [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
}
@end
于 2015-02-24T23:40:06.237 回答
0

您正在寻找 ICU 转型。此功能包含在 CFString API 函数 CFStringTransform() 中 使用转换选项 Any-Hex 您可能希望通过创建仅包含需要转义的字形的 NSCharacterSet 来进行优化。

于 2013-04-08T12:09:46.673 回答
0

您是否尝试过将 HTML 字符串转换为 UTF8 格式,然后将其加载到 Web 视图中?

[webView loadData:[html dataUsingEncoding:NSUTF8StringEncoding]
                     MIMEType:@\"text/html\"
             textEncodingName:@\"UTF-8\"
                      baseURL:nil];
于 2013-04-08T10:16:15.260 回答