当前位置:  开发笔记 > 编程语言 > 正文

Actionscript3/Flex中的HTML特殊实体代码

如何解决《Actionscript3/Flex中的HTML特殊实体代码》经验,为你挑选了1个好方法。

我有一个Flex/Actionscript 3应用程序,它在Text元素中显示RSS提要.它删除了任何HTML格式,但它没有正确处理HTML特殊实体代码 - 它呈现&mdash为文字字符串而不是用em-dash等替换它.有没有系统的方法我可以使它正确处理这些代码,或者我是否需要手动替换那些正则表达式的字符串?


编辑: 是相关的Flex的行为的一些方面:既texthtmlText妥善处理有限的字符集,没有进一步的调整- ,,< 等(事实上,实际处理他们一点更好比,因为后者对待作为字面低于字符),但有更大的一组字符(. ,和许多其他人)没有正确处理-至少不是默认.> texthtmlText<°&mdash



1> James Fasset..:

这是一种方式:

static private var entityMap:Object = { ' ':' ', '¡':'¡',       '¢':'¢', '£':'£', '¤':'¤', '¥':'¥', '¦':'¦', '§':'§', '¨':'¨', '©':'©', 'ª':'ª', '«':'«', '¬':'¬', '­':'­', '®':'®', '¯':'¯', '°':'°', '±':'±', '²':'²', '³':'³', '´':'´', 'µ':'µ', '¶':'¶', '·':'·', '¸':'¸', '¹':'¹', 'º':'º', '»':'»', '¼':'¼', '½':'½', '¾':'¾', '¿':'¿', 'À':'À', 'Á':'Á', 'Â':'Â', 'Ã':'Ã', 'Ä':'Ä', 'Å':'Å', 'Æ':'Æ', 'Ç':'Ç', 'È':'È', 'É':'É', 'Ê':'Ê', 'Ë':'Ë', 'Ì':'Ì', 'Í':'Í', 'Î':'Î', 'Ï':'Ï', 'Ð':'Ð', 'Ñ':'Ñ', 'Ò':'Ò', 'Ó':'Ó', 'Ô':'Ô', 'Õ':'Õ', 'Ö':'Ö', '×':'×', 'Ø':'Ø', 'Ù':'Ù', 'Ú':'Ú', 'Û':'Û', 'Ü':'Ü', 'Ý':'Ý', 'Þ':'Þ', 'ß':'ß', 'à':'à', 'á':'á', 'â':'â', 'ã':'ã', 'ä':'ä', 'å':'å', 'æ':'æ', 'ç':'ç', 'è':'è', 'é':'é', 'ê':'ê', 'ë':'ë', 'ì':'ì', 'í':'í', 'î':'î', 'ï':'ï', 'ð':'ð', 'ñ':'ñ', 'ò':'ò', 'ó':'ó', 'ô':'ô', 'õ':'õ', 'ö':'ö', '÷':'÷', 'ø':'ø', 'ù':'ù', 'ú':'ú', 'û':'û', 'ü':'ü', 'ý':'ý', 'þ':'þ', 'ÿ':'ÿ', 'ƒ':'ƒ', 'Α':'Α', 'Β':'Β', 'Γ':'Γ', 'Δ':'Δ', 'Ε':'Ε', 'Ζ':'Ζ', 'Η':'Η', 'Θ':'Θ', 'Ι':'Ι', 'Κ':'Κ', 'Λ':'Λ', 'Μ':'Μ', 'Ν':'Ν', 'Ξ':'Ξ', 'Ο':'Ο', 'Π':'Π', 'Ρ':'Ρ', 'Σ':'Σ', 'Τ':'Τ', 'Υ':'Υ', 'Φ':'Φ', 'Χ':'Χ', 'Ψ':'Ψ', 'Ω':'Ω', 'α':'α', 'β':'β', 'γ':'γ', 'δ':'δ', 'ε':'ε', 'ζ':'ζ', 'η':'η', 'θ':'θ', 'ι':'ι', 'κ':'κ', 'λ':'λ', 'μ':'μ', 'ν':'ν', 'ξ':'ξ', 'ο':'ο', 'π':'π', 'ρ':'ρ', 'ς':'ς', 'σ':'σ', 'τ':'τ', 'υ':'υ', 'φ':'φ', 'χ':'χ', 'ψ':'ψ', 'ω':'ω', 'ϑ':'ϑ', 'ϒ':'ϒ', 'ϖ':'ϖ', '•':'•', '…':'…', '′':'′', '″':'″', '‾':'‾', '⁄':'⁄', '℘':'℘', 'ℑ':'ℑ', 'ℜ':'ℜ', '™':'™', 'ℵ':'ℵ', '←':'←', '↑':'↑', '→':'→', '↓':'↓', '↔':'↔', '↵':'↵', '⇐':'⇐', '⇑':'⇑', '⇒':'⇒', '⇓':'⇓', '⇔':'⇔', '∀':'∀', '∂':'∂', '∃':'∃', '∅':'∅', '∇':'∇', '∈':'∈', '∉':'∉', '∋':'∋', '∏':'∏', '∑':'∑', '−':'−', '∗':'∗', '√':'√', '∝':'∝', '∞':'∞', '∠':'∠', '∧':'∧', '∨':'∨', '∩':'∩', '∪':'∪', '∫':'∫', '∴':'∴', '∼':'∼', '≅':'≅', '≈':'≈', '≠':'≠', '≡':'≡', '≤':'≤', '≥':'≥', '⊂':'⊂', '⊃':'⊃', '⊄':'⊄', '⊆':'⊆', '⊇':'⊇', '⊕':'⊕', '⊗':'⊗', '⊥':'⊥', '⋅':'⋅', '⌈':'⌈', '⌉':'⌉', '⌊':'⌊', '⌋':'⌋', '⟨':'〈', '⟩':'〉', '◊':'◊', '♠':'♠', '♣':'♣', '♥':'♥', '♦':'♦', '"':'"', '&':'&', '<':'<', '>':'>', 'Œ':'Œ', 'œ':'œ', 'Š':'Š', 'š':'š', 'Ÿ':'Ÿ', 'ˆ':'ˆ', '˜':'˜', ' ':' ', ' ':' ', ' ':' ', '‌':'‌', '‍':'‍', '‎':'‎', '‏':'‏', '–':'–', '—':'—', '‘':'‘', '’':'’', '‚':'‚', '“':'“', '”':'”', '„':'„', '†':'†', '‡':'‡', '‰':'‰', '‹':'‹', '›':'›', '€':'€' };

static public function convertEntities(str:String):String 
{
    var re:RegExp = /&\w*;/g
    var entitiesFound:Array = str.match(re);
    var entitiesConverted:Object = {};    

    var len:int = entitiesFound.length;
    var oldEntity:String;
    var newEntity:String;
    for (var i:int = 0; i < len; i++)
    {
        oldEntity = entitiesFound[i];
        newEntity = entityMap[oldEntity];

        if (newEntity && !entitiesConverted[oldEntity])
        {
            str = str.split(oldEntity).join(newEntity);
            entitiesConverted[oldEntity] = true;
        }
    }

    return str;
}

信用到期的信用:这个代码是由我的熟人(蒂姆霍金斯)优化的,该熟人是从最初的Flash HTML Entities Suck修改过来的.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有