如何使用HTML实体将String转换为String?

时间:2013-07-04 06:24:19

标签: php python encoding html-entities

我正在寻找一种方法,最好是python,但PHP也可以,甚至是在线网站,转换字符串

"Wählen"

成一个像

这样的字符串
"Wählen"

即。用HTML实体替换每个ISO 8859-1字符/符号。

4 个答案:

答案 0 :(得分:3)

echo htmlentities('Wählen', 0, 'utf-8');

^ PHP

PS 根据您需要显示编码字符串的位置了解参数

// does not encode quotes
echo htmlentities('"Wählen"', 0, 'utf-8');
// encodes quotes
echo htmlentities('"Wählen"', ENT_QUOTES, 'utf-8');

答案 1 :(得分:3)

像这样的东西

 $html="Wählen";
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ISO-8859-1');
// OR  $html = htmlentities($html, ENT_COMPAT, 'ISO-8859-1');
echo $new = htmlspecialchars($html, ENT_QUOTES);

答案 2 :(得分:2)

对于Python3

>>> import html.entities
>>> reventities = {k:'&'+v+';' for v,k in html.entities.entitydefs.items()}
>>> "".join(reventities.get(i, i) for i in "Wählen")
'Wählen'

另一种(可能更快)的方式

>>> toentity = {k: '&'+v+';' for k,v in html.entities.codepoint2name.items()}
>>> "Wählen".translate(toentity)
'Wählen'

答案 3 :(得分:1)

的Python:

# -*- coding: utf-8 -*-
from htmlentitydefs import codepoint2name

def uni_to_html(s):
    new_s = ""
    for c in s:
        try:
            new_s += '&{};'.format(codepoint2name[ord(c)])
        except KeyError:
            new_s += c
    return new_s

print uni_to_html(u"Wählen")  # Wählen