UIWebView 加载内容用三个方法,其中 loadHTMLString 用来加载字符或者文本内容。当内容来自 json 数据时,特殊字符比如“<”、“>”、" “ "、" ” "等会被编码,一段 img HTML标签(<img src="http://pinglun.fx678.com/data/attachment/forum/201511/03/101036dp84jaaca7858ej4.jpg">)会被编码成“<img src='http://pinglun.fx678.com/data/attachment/forum/201511/03/101036dp84jaaca7858ej4.jpg' /></align>”,此种情况导致 UIWebView 识别不了 这些 HTML 便签,会被原封不动的输出来。
NSString *strHtml = @"<div align=left>基本面:</align><div align=left>周二(11月3日)根据中国外汇交易中心公告, 10月份共有5家境外人民币清算行获批成为人民币银行间外汇市场衍生品会员。</align><div align=left>其中包括中国银行澳门分行、 中国银行法兰克福分行、建设银行(伦敦)、工商银行新加坡分行、中国银行(香港)。9月共有3家境外人民币清算行获批,包括中国银行悉尼分行、中国银行巴黎分行、 工商银行卢森堡分行。</align><div align=left>根据中国外汇交易中心数据,截至11月2日,中国人民币外汇即期会员共计503家,远期会员113家, 掉期会员112家,期权会员55家。</align><div align=left>此前8月底外媒引述知情人士报道称,中国央行(PBOC)决定拓宽人民币购售业务范围, 原来人民币购售仅限于贸易项下,本次新增资本项目下直接投资项业务,办理购售业务的品种从即期拓展至远期和掉期业务。</align><div align=left> 瑞银集团(UBS)经济学家David Tinsley周一(11月2日)在报告中称,将英国央行(BOE)加息的时间点推迟至2016年5月,但仅修改行动时间预期,加息幅度预测维持不变。 此前该行曾预计英国央行将在明年年2月加息25个基点。</align><div align=left>瑞银表示,当前英国的银行利率为0.50%,2016年底预期为1%, 2017年底为1.75%。</align><div align=left>该行指出,做出利率预期修正的原因是外部风险和英国国内增速放缓。 瑞银预计英国2015和2016年GDP增长2.4%,略低于此前预期。</align><div align=left>不过,瑞银也强调, 英国央行明年2月加息的可能性并未完全排除,也需要其他数据像周一的PMI一样给人惊喜,体现经济全面向好。</align><div align=left> 受益于出口订单反弹,周一公布的英国10月Markit/CIPS制造业采购经理人指数(PMI)从9月份的51.8跳升至55.5,创16个月高位,远高于经济学家的最高预估值52.5。 </align><div align=left>技术面:</align><div align=left>日线图上,现货白银一根长下影线的阴线。 指标上日线macd绿柱子继续伸长,布林中轨上移,已跌破中轨支撑。KDJ指标J值在20以下超卖区。4小时级别上,布林通道开口打开。Macd黄白线持续下行。 KDJ指标金叉向上发散。整体来看,现货白银短期有技术反弹需要,谨慎操作,不宜追涨杀跌。现货白银支撑位: 3100 3070 阻力位:3180 3210。 </align><div align=left><img src='http://pinglun.fx678.com/data/attachment/forum/201511/03/101036dp84jaaca7858ej4.jpg' /></align><div align=left>声明:投资有风险,入市须谨慎!本文仅代表作者个人观点,且仅供参考。本文仅代表作者个人观点且仅供参考, 请自行进行交易决策,做好账户风险管理。</align><div align=left>汇创贵金属研发部</align><div align=left>2015.11.3</align><br />"; strHtml = [NSString stringWithFormat:@"(\"%@\").toString().replace(/</g, \"<\").replace(/>/g, \">\").replace(/'/g, \"'\") .replace(/ /g, \" \").replace(/&/g, \"&\");",strHtml]; strHtml = [self.webView stringByEvaluatingJavaScriptFromString:strHtml]; [self.webView loadHTMLString:strHtml baseURL:nil];
javascript 提供了一些方法 来编码(htmlEncode) 和 解码(htmlDecode) HTML 标签,参考代码如下:
<script type="text/javascript"> //编码 function htmlEncode(str){ if (typeof str == "undefined") return ""; str = str.replace(/&/g, "&"); str = str.replace(/</g, "<"); str = str.replace(/>/g, ">"); str = str.replace(/\"/g, """); //str = str.replace(/\'/g, "'"); //IE不支持apos str = str.replace(/ /g, " "); str = str.replace(/&#([^\;]+);/ig, "&#$1;"); //将井转成相应的汉字“井” return str; } //解码 function htmlDecode(str){ if (typeof str == "undefined") return ""; str = str.replace(/</g, "<"); str = str.replace(/>/g, ">"); str = str.replace(/"/g, "\""); str = str.replace(/'/g, "'"); str = str.replace(/ /g, " "); str = str.replace(/&/g, "&"); return str.toString(); } </script>