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

如何使用JavaScript将Cambria Math字体格式文本转换为纯文本

问题解答

可以通过JavaScript实现这类特殊文本到普通纯文本的转换。

你遇到的保留Cambria Math字体格式的「𝐓𝐁𝐋」本质不是带字体格式的文本,而是属于Unicode「数学字母数字符号」区块的特殊编码字符,记事本无法正常显示是因为默认字体不支持该字符区块,Word中能正常显示是因为自带Cambria Math字体对该区块做了适配,和文本本身带格式没有关系。

实现原理

  • 这类数学风格的英文字母和普通ASCII英文字母存在固定的码位对应关系:你示例中的三个加粗无衬线大写字母,码点范围在U+1D400-U+1D419区间,依次对应普通大写A-Z,码点偏移量固定,不需要依赖字体识别就能完成转换。

可直接运行的转换代码

/**
 * 将Cambria Math显示的数学加粗大写字母转换为普通纯文本
 * @param {string} input 输入的特殊格式文本
 * @returns {string} 转换后的普通纯文本
 */
function convertMathBoldTextToPlain(input) {
  return input.replace(/\uD835[\uDC00-\uDD38]/g, (matchChar) => {
    const charCode = matchChar.codePointAt(0);
    const capitalAOffset = charCode - 0x1D400;
    // 匹配大写A-Z区间,返回对应普通ASCII字符
    if (capitalAOffset >= 0 && capitalAOffset <= 25) {
      return String.fromCharCode(65 + capitalAOffset);
    }
    // 小写字母、斜体、双线体等其他数学字符可按相同逻辑扩展映射规则
    return matchChar;
  });
}

// 测试:转换𝐓𝐁𝐋
console.log(convertMathBoldTextToPlain('𝐓𝐁𝐋')); // 输出结果:TBL

注意事项

  • 上述代码已经覆盖你示例中的加粗大写字母场景,如果你的文本包含斜体、空心体、手写体等其他Cambria Math适配的数学字符,只需要对应补充对应Unicode区块的偏移映射规则,即可实现全类型数学特殊字符的转换。
  • 转换后的字符是标准ASCII纯文本,不需要依赖任何特殊字体,在记事本、任意文本编辑器中都能正常显示,不存在格式残留问题。

内容的提问来源于stack exchange,提问作者Vladislav moroz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:24:20