HTML 实体编码 / 解码 — HTML 转义与反转义

用命名或数字实体对文本进行 HTML 转义,把 & 这类引用解码回字符,并可搜索实体参考表。

编码结果
<p class="note">Fish & chips — £4.50 at Café "Ōshima" 🐟</p>

HTML 实体参考表

字符命名十进制十六进制复制
""""
&&&&
''''
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
·&nbsp;&#160;&#xA0;
¡&iexcl;&#161;&#xA1;
¢&cent;&#162;&#xA2;
£&pound;&#163;&#xA3;
¤&curren;&#164;&#xA4;
¥&yen;&#165;&#xA5;
¦&brvbar;&#166;&#xA6;
§&sect;&#167;&#xA7;
¨&uml;&#168;&#xA8;
©&copy;&#169;&#xA9;
ª&ordf;&#170;&#xAA;
«&laquo;&#171;&#xAB;
¬&not;&#172;&#xAC;
·&shy;&#173;&#xAD;
®&reg;&#174;&#xAE;
¯&macr;&#175;&#xAF;
°&deg;&#176;&#xB0;
±&plusmn;&#177;&#xB1;
²&sup2;&#178;&#xB2;
³&sup3;&#179;&#xB3;
´&acute;&#180;&#xB4;
µ&micro;&#181;&#xB5;
&para;&#182;&#xB6;
·&middot;&#183;&#xB7;
¸&cedil;&#184;&#xB8;
¹&sup1;&#185;&#xB9;
º&ordm;&#186;&#xBA;
»&raquo;&#187;&#xBB;
¼&frac14;&#188;&#xBC;
½&frac12;&#189;&#xBD;
¾&frac34;&#190;&#xBE;
¿&iquest;&#191;&#xBF;
À&Agrave;&#192;&#xC0;
Á&Aacute;&#193;&#xC1;
Â&Acirc;&#194;&#xC2;
Ã&Atilde;&#195;&#xC3;
Ä&Auml;&#196;&#xC4;
Å&Aring;&#197;&#xC5;
Æ&AElig;&#198;&#xC6;
Ç&Ccedil;&#199;&#xC7;
È&Egrave;&#200;&#xC8;
É&Eacute;&#201;&#xC9;
Ê&Ecirc;&#202;&#xCA;
Ë&Euml;&#203;&#xCB;
Ì&Igrave;&#204;&#xCC;
Í&Iacute;&#205;&#xCD;
Î&Icirc;&#206;&#xCE;
Ï&Iuml;&#207;&#xCF;
Ð&ETH;&#208;&#xD0;
Ñ&Ntilde;&#209;&#xD1;
Ò&Ograve;&#210;&#xD2;
Ó&Oacute;&#211;&#xD3;
Ô&Ocirc;&#212;&#xD4;
Õ&Otilde;&#213;&#xD5;
Ö&Ouml;&#214;&#xD6;
×&times;&#215;&#xD7;
Ø&Oslash;&#216;&#xD8;
Ù&Ugrave;&#217;&#xD9;
Ú&Uacute;&#218;&#xDA;
Û&Ucirc;&#219;&#xDB;
Ü&Uuml;&#220;&#xDC;
Ý&Yacute;&#221;&#xDD;
Þ&THORN;&#222;&#xDE;
ß&szlig;&#223;&#xDF;
à&agrave;&#224;&#xE0;
á&aacute;&#225;&#xE1;
â&acirc;&#226;&#xE2;
ã&atilde;&#227;&#xE3;
ä&auml;&#228;&#xE4;
å&aring;&#229;&#xE5;
æ&aelig;&#230;&#xE6;
ç&ccedil;&#231;&#xE7;
è&egrave;&#232;&#xE8;
é&eacute;&#233;&#xE9;
ê&ecirc;&#234;&#xEA;
ë&euml;&#235;&#xEB;
ì&igrave;&#236;&#xEC;
í&iacute;&#237;&#xED;
î&icirc;&#238;&#xEE;
ï&iuml;&#239;&#xEF;
ð&eth;&#240;&#xF0;
ñ&ntilde;&#241;&#xF1;
ò&ograve;&#242;&#xF2;
ó&oacute;&#243;&#xF3;
ô&ocirc;&#244;&#xF4;
õ&otilde;&#245;&#xF5;
ö&ouml;&#246;&#xF6;
÷&divide;&#247;&#xF7;
ø&oslash;&#248;&#xF8;
ù&ugrave;&#249;&#xF9;
ú&uacute;&#250;&#xFA;
û&ucirc;&#251;&#xFB;
ü&uuml;&#252;&#xFC;
ý&yacute;&#253;&#xFD;
þ&thorn;&#254;&#xFE;
ÿ&yuml;&#255;&#xFF;
Α&Alpha;&#913;&#x391;
Β&Beta;&#914;&#x392;
Γ&Gamma;&#915;&#x393;
Δ&Delta;&#916;&#x394;
Ε&Epsilon;&#917;&#x395;
Ζ&Zeta;&#918;&#x396;
Η&Eta;&#919;&#x397;
Θ&Theta;&#920;&#x398;
Ι&Iota;&#921;&#x399;
Κ&Kappa;&#922;&#x39A;
Λ&Lambda;&#923;&#x39B;
Μ&Mu;&#924;&#x39C;
Ν&Nu;&#925;&#x39D;
Ξ&Xi;&#926;&#x39E;
Ο&Omicron;&#927;&#x39F;
Π&Pi;&#928;&#x3A0;
Ρ&Rho;&#929;&#x3A1;
Σ&Sigma;&#931;&#x3A3;
Τ&Tau;&#932;&#x3A4;
Υ&Upsilon;&#933;&#x3A5;
Φ&Phi;&#934;&#x3A6;
Χ&Chi;&#935;&#x3A7;
Ψ&Psi;&#936;&#x3A8;
Ω&Omega;&#937;&#x3A9;
α&alpha;&#945;&#x3B1;
β&beta;&#946;&#x3B2;
γ&gamma;&#947;&#x3B3;
δ&delta;&#948;&#x3B4;
ε&epsilon;&#949;&#x3B5;
ζ&zeta;&#950;&#x3B6;
η&eta;&#951;&#x3B7;
θ&theta;&#952;&#x3B8;
ι&iota;&#953;&#x3B9;
κ&kappa;&#954;&#x3BA;
λ&lambda;&#955;&#x3BB;
μ&mu;&#956;&#x3BC;
ν&nu;&#957;&#x3BD;
ξ&xi;&#958;&#x3BE;
ο&omicron;&#959;&#x3BF;
π&pi;&#960;&#x3C0;
ρ&rho;&#961;&#x3C1;
ς&sigmaf;&#962;&#x3C2;
σ&sigma;&#963;&#x3C3;
τ&tau;&#964;&#x3C4;
υ&upsilon;&#965;&#x3C5;
φ&phi;&#966;&#x3C6;
χ&chi;&#967;&#x3C7;
ψ&psi;&#968;&#x3C8;
ω&omega;&#969;&#x3C9;
Œ&OElig;&#338;&#x152;
œ&oelig;&#339;&#x153;
Š&Scaron;&#352;&#x160;
š&scaron;&#353;&#x161;
Ÿ&Yuml;&#376;&#x178;
ƒ&fnof;&#402;&#x192;
ˆ&circ;&#710;&#x2C6;
˜&tilde;&#732;&#x2DC;
ϑ&thetasym;&#977;&#x3D1;
ϒ&upsih;&#978;&#x3D2;
ϖ&piv;&#982;&#x3D6;
·&ensp;&#8194;&#x2002;
·&emsp;&#8195;&#x2003;
·&thinsp;&#8201;&#x2009;
·&zwnj;&#8204;&#x200C;
·&zwj;&#8205;&#x200D;
·&lrm;&#8206;&#x200E;
·&rlm;&#8207;&#x200F;
–&ndash;&#8211;&#x2013;
—&mdash;&#8212;&#x2014;
‘&lsquo;&#8216;&#x2018;
’&rsquo;&#8217;&#x2019;
‚&sbquo;&#8218;&#x201A;
“&ldquo;&#8220;&#x201C;
”&rdquo;&#8221;&#x201D;
„&bdquo;&#8222;&#x201E;
†&dagger;&#8224;&#x2020;
‡&Dagger;&#8225;&#x2021;
•&bull;&#8226;&#x2022;
…&hellip;&#8230;&#x2026;
‰&permil;&#8240;&#x2030;
′&prime;&#8242;&#x2032;
″&Prime;&#8243;&#x2033;
‹&lsaquo;&#8249;&#x2039;
›&rsaquo;&#8250;&#x203A;
‾&oline;&#8254;&#x203E;
⁄&frasl;&#8260;&#x2044;
€&euro;&#8364;&#x20AC;
ℑ&image;&#8465;&#x2111;
℘&weierp;&#8472;&#x2118;
ℜ&real;&#8476;&#x211C;
™&trade;&#8482;&#x2122;
ℵ&alefsym;&#8501;&#x2135;
←&larr;&#8592;&#x2190;
↑&uarr;&#8593;&#x2191;
→&rarr;&#8594;&#x2192;
↓&darr;&#8595;&#x2193;
↔&harr;&#8596;&#x2194;
↵&crarr;&#8629;&#x21B5;
⇐&lArr;&#8656;&#x21D0;
⇑&uArr;&#8657;&#x21D1;
⇒&rArr;&#8658;&#x21D2;
⇓&dArr;&#8659;&#x21D3;
⇔&hArr;&#8660;&#x21D4;
∀&forall;&#8704;&#x2200;
∂&part;&#8706;&#x2202;
∃&exist;&#8707;&#x2203;
∅&empty;&#8709;&#x2205;
∇&nabla;&#8711;&#x2207;
∈&isin;&#8712;&#x2208;
∉&notin;&#8713;&#x2209;
∋&ni;&#8715;&#x220B;
∏&prod;&#8719;&#x220F;
∑&sum;&#8721;&#x2211;
−&minus;&#8722;&#x2212;
∗&lowast;&#8727;&#x2217;
√&radic;&#8730;&#x221A;
∝&prop;&#8733;&#x221D;
∞&infin;&#8734;&#x221E;
∠&ang;&#8736;&#x2220;
∧&and;&#8743;&#x2227;
∨&or;&#8744;&#x2228;
∩&cap;&#8745;&#x2229;
∪&cup;&#8746;&#x222A;
∫&int;&#8747;&#x222B;
∴&there4;&#8756;&#x2234;
∼&sim;&#8764;&#x223C;
≅&cong;&#8773;&#x2245;
≈&asymp;&#8776;&#x2248;
≠&ne;&#8800;&#x2260;
≡&equiv;&#8801;&#x2261;
≤&le;&#8804;&#x2264;
≥&ge;&#8805;&#x2265;
⊂&sub;&#8834;&#x2282;
⊃&sup;&#8835;&#x2283;
⊄&nsub;&#8836;&#x2284;
⊆&sube;&#8838;&#x2286;
⊇&supe;&#8839;&#x2287;
⊕&oplus;&#8853;&#x2295;
⊗&otimes;&#8855;&#x2297;
⊥&perp;&#8869;&#x22A5;
⋅&sdot;&#8901;&#x22C5;
⌈&lceil;&#8968;&#x2308;
⌉&rceil;&#8969;&#x2309;
⌊&lfloor;&#8970;&#x230A;
⌋&rfloor;&#8971;&#x230B;
⟨&lang;&#10216;&#x27E8;
⟩&rang;&#10217;&#x27E9;
◊&loz;&#9674;&#x25CA;
♠&spades;&#9824;&#x2660;
♣&clubs;&#9827;&#x2663;
♥&hearts;&#9829;&#x2665;
♦&diams;&#9830;&#x2666;

共 253 个实体,显示 253 个。不可见字符(空格、连接符、软连字符)显示为 ·。

完全在浏览器中运行。你输入的任何内容都不会发送给我们或被存储。 浏览全部免费工具.

发现问题,或者觉得哪里可以更好?每条消息我们都会阅读,并尽快修复。

这款 HTML 实体编码解码工具可以在字符和 HTML 字符引用之间相互转换。编码会把在标记语言中有特殊含义的五个字符(< > & " ')转换为 &lt; &gt; &amp; &quot; 和 &#39;,这样文本就能显示在页面上或放进属性中,而不会被当作 HTML 解析。你还可以编码所有非 ASCII 字符,这在模板、邮件或旧系统把 UTF-8 搞乱时很有帮助。

解码支持 &eacute;、&hellip; 等命名实体,&#233; 这样的十进制引用和 &#xE9; 这样的十六进制引用,并遵循 HTML5 解析器本身的规则,包括它对无效码位的特殊处理。不在内置 253 项表格中的名称会交由浏览器的 HTML 解析器查找,因此 HTML5 的 2,000 多个名称都能解码。未知名称会原样保留并列出,而不是悄无声息地消失。本工具只转换文本,并不是 HTML 净化器。

使用方法

  1. 选择“编码”或“解码”。
  2. 编码时选择范围:仅五个不安全字符(普通 HTML 已足够)、所有非 ASCII 字符,或除字母、数字和空格以外的所有字符。
  3. 选择命名、十进制或十六进制引用。命名模式下,没有名称的字符会改用十进制。
  4. 输入或粘贴内容;输出会随输入实时更新。“交换”会把输出送回输入框,用于检验往返转换。
  5. 在参考表中按名称、字符、十进制代码或分组(例如“箭头”或“希腊”)搜索,并复制实体。

常见问题

HTML 中哪些字符必须转义?

在文本内容中,< 和 & 必须转义,因为它们分别是标签和实体的开头。在属性值中,还要转义用来界定属性的引号:" 转为 &quot;,或 ' 转为 &#39;。把 > 转义为 &gt; 并非严格必需,但这是惯例且无害。其他所有字符,包括带重音字母和表情符号,都可以在 UTF-8 页面中原样出现。

&nbsp; 和普通空格有什么区别?

&nbsp; 是 U+00A0,即不换行空格。与普通空格不同,浏览器不会在它所在的位置换行,也不会把多个连续的它合并成一个。它适合把“10 kg”或“Mr. Smith”保持在同一行。如果用一排排 &nbsp; 来排版,说明这件事应该交给 CSS 来做。

应该用 &apos; 还是 &#39;?

&apos; 在 XML 和 HTML5 中有定义,但 HTML 4 中没有,所以非常老的浏览器和一些邮件客户端无法识别它。&#39; 在任何地方都能用,因此本编码器即使在命名模式下也用它表示撇号。在现代 HTML5 页面中,两者都可以。

HTML 编码足以防止 XSS 吗?

转义 < > & " ' 可以防止注入到 HTML 文本和带引号的属性值中,这覆盖了最常见的情况。但它不能保证值在 <script> 块、style 属性、不带引号的属性或 href="javascript:..." 这样的 URL 中是安全的。每种上下文都需要各自的编码或校验。请使用默认会转义的模板引擎;必须接受用户 HTML 时,使用 DOMPurify 等净化库。

为什么我的文本中出现了 &amp;amp; 或 é?

&amp;amp; 说明文本被 HTML 编码了两次:& 变成了 &amp;,然后这个 & 又被编码了一次。多出几层就解码几次。é 变成 é 则不是实体的问题,而是编码不匹配:UTF-8 字节被当作 Windows-1252 或 Latin-1 读取了。请修正字符集声明或数据库连接的编码;用实体只是掩盖了症状。

命名引用、十进制引用和十六进制引用

HTML 提供了三种写法来表示同一个字符。&copy; 这样的命名引用可读性好,但只适用于 HTML 定义了名称的字符。&#169; 这样的十进制引用和 &#xA9; 这样的十六进制引用适用于所有 Unicode 码位,包括表情符号:🌲 写作 &#127794; 或 &#x1F332;,整个字符用一个引用表示,而不是把它的 UTF-16 两半分成两个。

本工具表格中的 253 个名称是 HTML 4 的集合再加上 &apos;。所有浏览器、邮件客户端和 HTML 库都支持它们。HTML5 又增加了约 2,000 个,大多是数学符号(&NotEqualTilde;、&bigotimes;),在现代浏览器中可以解码;但如果内容会经过较旧的工具处理,最好直接写成 UTF-8 字符或数字引用。

名称区分大小写:&Eacute; 是 É,&eacute; 是 é。少数名称(如 &COPY; 和 &AMP;)出于历史原因也有大写形式,但小写形式才是标准写法。

什么时候该编码,什么时候不该

• 在页面上显示用户输入:在输出时(在模板中)转义五个不安全字符,而不是在存入数据库时转义。

• 博客文章或文档中的代码示例:转义 < 和 &,让标签以文本形式显示。

• 邮件模板以及 UTF-8 支持不可靠的旧系统:把所有非 ASCII 字符编码为数字引用,内容在任何字符集下都能完好保留。

• 现代 UTF-8 页面:不要编码带重音字母、弯引号或表情符号。直接使用字符体积更小、可被搜索,也更便于编辑。

• JSON、URL 和 JavaScript 字符串:HTML 实体在这些地方毫无意义。请分别使用 JSON 转义、百分号编码或 JavaScript 字符串转义。

数字引用是如何解码的

HTML5 规范规定了解析器遇到奇怪的数字引用时必须怎么做,本解码器遵循这些规定。&#0;、指向代理码位的引用(&#xD800;)以及大于 U+10FFFF 的值都会变成替换字符 U+FFFD。&#128; 到 &#159; 范围内的引用按 Windows-1252 解读,所以 &#150; 是短破折号,&#128; 是欧元符号,因为老网页写下它们时就是这个意思。

命名引用只有以分号结尾时才会被解码。浏览器在文本中也接受少数不带分号的旧名称,如 &copy 或 &amp,但这种行为取决于后面跟着什么,所以内容中应始终带上分号。

相关免费工具

  • URL 编码 / 解码 — 以组件、完整 URL 或表单模式对 URL 文本进行百分号编码或解码,并可在表格中编辑 URL 的查询参数。
  • Base64 编码 / 解码工具 — 把文本或文件编码为 Base64,把图片转成带 CSS 和 <img> 代码片段的 data URI,还能把 Base64 解码回可预览的文件。数据不会离开你的浏览器。
  • Meta 标签生成器 — 填写页面的标题、描述和社交卡片信息,即可得到完整且正确转义的 <head> 代码块,并实时显示长度计数。
  • JSON 格式化 — 格式化、压缩和校验 JSON,解析错误精确到行和列。在浏览器中运行,无需上传。