微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ColdFusion中解码数字HTML实体?

我需要一种将数字 HTML实体转换为纯文本字符等价物的方式.例如,我想转一下实体:
é

进入角色:

é

通过一些谷歌搜索,我发现一个名为HtmlUnEditFormat功能,但这个功能只能转换命名实体.有没有办法在ColdFusion中解码数字实体?

解决方法

更新答案:

感谢Todd Sharp指出了一个非常简单的方法,使用与CF(和Railo)一起打包的Apache Commons StringEscapeUtils库,因此您只需执行以下操作:

<cfset Entity = "&##0233;" />
<cfset StrEscUtils = createObject("java","org.apache.commons.lang.StringEscapeUtils") />
<cfset Character = StrEscUtils.unescapeHTML(Entity) />

原始答案:

这个链接功能是愚蠢的 – 没有必要明确地命名它们,如你所说,它不做数字.

更简单的是让CF为你做的工作 – 使用XmlParse函数

<cffunction name="decodeHtmlEntity" returntype="String" output="false">
    <cfargument name="Entity" type="String" hint="&##<number>; or &<name>;" />
    <cfreturn XmlParse('<xml>#Arguments.Entity#</xml>').XmlRoot.XmlText />
</cffunction>

一个与Railo合作,我不记得CF是否支持该语法,所以你可能需要将它改为:

<cffunction name="decodeHtmlEntity" returntype="String" output="false">
    <cfargument name="Entity" type="String" hint="&##<number>; or &<name>;" />
    <cfset var XmlDoc = XmlParse('<xml>#Arguments.Entity#</xml>') />
    <cfreturn XmlDoc.XmlRoot.XmlText />
</cffunction>

原文地址:https://www.jb51.cc/html/224755.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐