You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将O'Brien转换为O'Brien?这类字符编码的名称是什么?

问题解答

编码官方名称

这类编码的官方名称为HTML实体编码(HTML Entity Encoding),也称为HTML字符引用,是HTML规范中定义的特殊字符转义规则,主要用于转义HTML保留字符、无法直接输入的特殊字符,避免字符和HTML语法产生冲突。
它分为两类:

  • 命名实体:用易读的字符串标识字符,比如&amp;代表&、&lt;代表<
  • 数字实体:用字符的Unicode码点标识,分十进制(格式为&#十进制数字;)和十六进制(格式为&#x十六进制数字;)两种,你示例中的&#x27;就是十六进制数字实体,对应单引号'。

你获取到的O&amp;#x27;Brien属于经过两次HTML实体编码的结果:第一次把单引号编码为&#x27;,第二次又把&#x27;开头的&编码为&amp;,最终得到该字符串。

转换方法

只需要对字符串做对应次数的HTML实体解码即可,不同开发环境的常用实现方式如下:

Python

使用标准库html的unescape方法即可:

import html
raw_str = "O&amp;#x27;Brien"
# 两次解码对应两次编码的场景
result = html.unescape(html.unescape(raw_str))
# 输出结果为 O'Brien

JavaScript

可以用DOMParser实现原生解码:

function htmlDecode(str) {
  const doc = new DOMParser().parseFromString(str, "text/html");
  return doc.documentElement.textContent;
}
const rawStr = "O&amp;#x27;Brien";
const result = htmlDecode(htmlDecode(rawStr));
// 输出结果为 O'Brien

Java

可以使用Apache Commons Text库的StringEscapeUtils工具类:

import org.apache.commons.text.StringEscapeUtils;

public class HtmlDecodeDemo {
    public static void main(String[] args) {
        String rawStr = "O&amp;#x27;Brien";
        String result = StringEscapeUtils.unescapeHtml4(StringEscapeUtils.unescapeHtml4(rawStr));
        // 输出结果为 O'Brien
    }
}

内容的提问来源于stack exchange,提问作者Daniel Rodríguez Meza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:57:03