Как преобразовать специальные символы в HTML-объекты? - PullRequest
5 голосов
/ 08 марта 2012

Я хочу преобразовать в python специальные символы, такие как "%$!&@á é ©", а не только '<&">', как показывает вся документация и ссылки, которые я нашел до сих пор.cgi.escape не решает проблему.

Например, строку "á ê ĩ &" следует преобразовать в "&aacute; &ecirc; &itilde; &amp;".

Кто-нибудь знает, как ее решить?Я использую Python 2.6.

Ответы [ 2 ]

7 голосов
/ 08 марта 2012

Вы можете создать свой собственный цикл, используя словари, которые вы можете найти в http://docs.python.org/library/htmllib.html#module-htmlentitydefs

Тот, который вы ищете: htmlentitydefs.codepoint2name

5 голосов
/ 08 марта 2012

Я нашел встроенное решение для поиска имени htmlentitydefs.codepoint2, которое @Ruben Vermeersch сказал в своем ответе.Решение было найдено здесь: http://bytes.com/topic/python/answers/594350-convert-unicode-chars-html-entities

Вот функция:

def htmlescape(text):
    text = (text).decode('utf-8')

    from htmlentitydefs import codepoint2name
    d = dict((unichr(code), u'&%s;' % name) for code,name in codepoint2name.iteritems() if code!=38) # exclude "&"    
    if u"&" in text:
        text = text.replace(u"&", u"&amp;")
    for key, value in d.iteritems():
        if key in text:
            text = text.replace(key, value)
    return text

Спасибо всем за помощь!;)

...