Преобразование имен объектов в номера объектов символов ISO 8859-1

0

Мне нужно преобразовать имена сущностей типа   ° ¼   ° ¼ (как указано в http://www.w3schools.com/tags/ref_entities.asp под символами ISO 8859-1) к их соответствующим номерам сущностей.

Например,

&nbsp is the entity name and its corresponding number is  
&deg is the entity name and its corresponding number is °

Я попытался использовать CGI.unescapeHTML, но он поддерживает только " ' & < > " ' & < >

Было бы здорово, если бы кто-то помог мне с этим.

  • 0
    Пожалуйста, расширите свой вопрос с дополнительной информацией. Где и когда вам нужно сделать преобразование? Вы обрабатываете файлы? Пользовательский ввод?
  • 0
    Совсем не знаком с этой библиотекой, но поможет ли она дать HTML DOCTYPE, который явно включает все имена сущностей? То есть HTML 4.01 DOCTYPE.
Теги:
xhtml

1 ответ

0

Придется делать то же самое сам. Это код, который я придумал, надеюсь, что это поможет!

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

        foreach( string namedEntity in namedEntities )
        {
            char actualChar = System.Net.WebUtility.HtmlDecode( namedEntity ).ToCharArray()[0];
            html = html.Replace( namedEntity, string.Format( "&#{0};", (int)actualChar ) );
        }

        return html;
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню