【问题标题】:HTML to NSAttributeString issue with &HTML 到 NSAttributedString 问题与 &
【发布时间】:2013-10-18 21:52:00
【问题描述】:

我正在使用这个 git 项目:https://gist.github.com/xslim/851018

我想在我的文本视图上显示字体样式,例如粗体、斜体、下划线......

我称之为:

self.dataTextView.attributedText = [[NSAttributedString alloc]initWithHTML:item.text];

"item.text" 来自网络服务器,使用 api (JSON),它包含特殊字符的 html 实体!

一切正常,比如粗体、斜体.....除了标签:&

编辑:

例如使用 & :

来自网络服务器的我的输入 (item.text):

@"I play football &amp; <b>tennis</b>"  

我的 Iphone 上显示的结果:

我踢足球网球

我的 iphone 上的预期结果应该是:

I play football & tennis

似乎“initWithHTML”破坏了我的 html 编码,我不知道为什么....

我不知道为什么它不起作用?

【问题讨论】:

  • 您的问题不清楚。你能解释一下你想要达到的目标吗??
  • 你需要清除文本中的html字符吗?
  • 我想正确显示编码的文本:)
  • item.text 是否来自 XML?
  • 不通过使用 API 来自网络服务器 :)

标签: html ios objective-c nsattributedstring


【解决方案1】:

在您的代码中尝试这一行 这里的数据将是NSData:-

NSString *readableData = [[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding];

也如您所愿,我对您的代码做了一些更改:-

NSString *str=@"I play football &amp; <b>tennis</b>";
NSString *str1=[str stringByReplacingOccurrencesOfString:@"amp" withString:@""];
NSLog(@"str1=%@",str1);

输出:-- I play football &amp;; &lt;b&gt;tennis&lt;/b&gt;

【讨论】:

  • 我试过这样: NSData* data = [item.text dataUsingEncoding:NSUTF8StringEncoding]; NSString *readableData = [[NSString alloc] initWithData: 数据编码: NSUTF8StringEncoding]; self.dataTextView.attributedText = [[NSAttributedString alloc]initWithHTML:readableData];
  • 到底是什么问题?
  • 这段代码没有改变,我的 iphone 上的结果仍然是“&”而不仅仅是“&”我想要实现的目标:)
  • 哦,但是你需要使用这个方法替换你的字符串 stringByReplacingOccurrencesOfString
  • 你可以在这里粘贴你的确切输入字符串和输出字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多