我需要一种将数字
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>