HTML 字符引用编码与解码
在纯文本和 HTML 字符引用之间转换,不解析或渲染标记。选择操作后检查结果,再复制或下载。行尾统一使用 LF,包括解码产生的 CR。
选择转换方式
- 粘贴文本并选择编码或解码。切换操作时保留原始输入,不会自动把结果放回输入框。空输入无法转换,空格、制表符和换行则是有效数据。输入中的 CRLF 和单独的 CR 会转换为 LF。
- 编码时,“保留 Unicode”转义六个标点符号,保留其他允许的字符;“ASCII 字符引用”可选择十六进制、十进制或优先使用命名引用。解码时选择文本片段或属性值文本;该上下文只影响引用的恢复规则,不会解析 HTML 文档。
- 点击编码或解码按钮。结果以纯文本显示,并列出 UTF-8 字节数和 Unicode 标量值数。即使预览被截短,复制和下载仍使用完整结果。解码只进行一次,然后将产生的 CR 或 CRLF 转换为 LF。
了解字符引用与上下文
“保留 Unicode”会替换和号、小于号、大于号、双引号、单引号和反引号。重音字符、表情符号及其他允许的 Unicode 字符可保留在 UTF-8 文本中。ASCII 字符引用只是表示方式,不要求编码每个字母,也不能保证适用于所有 HTML、URL、JavaScript 或 CSS 场景。
命名引用区分大小写,可能产生多个 Unicode 标量值。缺少分号的旧式引用在文本和属性值上下文中可能有不同的恢复结果。未知或不完整的引用可能保持原样;这不是文档有效性检查。
解码将整个输入视为带字符引用的文本,不识别标签或引号,类似脚本的内容也只作为文本输出。一次解码会把 &lt; 变成字面文本 <,不会再次变成 <。对已有引用进行编码会再次转义其中的和号。
输入和结果统一使用 LF 换行。解码产生的 CR 或 CRLF 也会转换为 LF;不会修剪空白、规范化 Unicode、删除签名或添加末尾换行。本工具不能清理或验证 HTML。
转换示例
编码示例 <b>café & 😀</b> 为 19 个 UTF-8 字节。“保留 Unicode”得到 <b>café & 😀</b>,共 35 字节和 31 个 Unicode 标量值。标记仍是文本,不会显示为元素。
相同输入使用 ASCII 字符引用时,十六进制结果为 53 字节、十进制为 48 字节、优先命名引用为 46 字节。没有对应名称时使用十六进制。这些只是不同的文本表示,并非不同的安全等级。
解码示例为 39 个 ASCII 字节。一次解码得到以 CRLF 结尾的文本,再把这对字符转换为 LF 后得到 14 字节。在文本上下文中,&=1 变成 &=1;在属性值上下文中它保持原样。
字符和大小限制
规范化后的输入最多为 100,000 个 UTF-16 代码单元和 262,144 个 UTF-8 字节。编辑内容在规范化前超过 200,000 单元或规范化后超过 100,000 单元时会被拒绝,不会自动截断。字符或字节错误的输入仍可编辑。
输入和输出不接受孤立代理项、除制表符和 LF 外的 C0 控制字符、DEL、C1、U+FDD0 至 U+FDEF,以及末尾为 FFFE 或 FFFF 的标量值。允许的组合字符、从右向左文本和 U+FEFF 会保留。这是本工具的文本范围,不表示被拒绝的字符在 Unicode 或 HTML 中都无效。
解码也可能产生不允许的字符:对 128 的引用会得到欧元符号,而产生 U+0081、U+0001 或 U+FDD0 的引用会报错。零、代理项和超出范围的数值引用恢复为 U+FFFD。不会为通过检查而静默删除字符。
完整结果最多为 1,048,576 个 UTF-8 字节和 UTF-16 代码单元。预览最多显示 100,000 个 Unicode 标量值;复制和下载使用完整结果。工作线程超过 15 秒会取消,不产生部分结果。库的中间数据可能大于最终结果限制。
本地处理
本工具不会额外上传文本、要求账户、保存历史、记录输入或生成包含文本的分享链接。转换在浏览器工作线程中进行;修改输入或设置、取消和清空会使旧结果失效。网站其他服务仍适用网站政策。
