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

如何配置i18n避免特殊字符转为HTML转义格式?

解决i18n自动转义HTML特殊字符的问题

你的问题很典型——i18n默认会对翻译内容做HTML转义,目的是防范XSS风险,但如果你的输出场景不是HTML(比如API响应、非网页的文本输出),这个转义就会造成不必要的麻烦。

两种解决方式,按需选择:

1. 全局关闭转义(推荐,适合全项目不需要HTML转义的场景)

在初始化i18n的时候,添加escapeValue: false配置项,彻底关闭自动转义功能:

const i18n = require('i18n');

i18n.configure({
  // 你的其他配置(比如 locales、directory 等)
  escapeValue: false // 关键配置:禁用HTML转义
});

配置完成后,所有i18n.__()的调用都不会再转义特殊字符,你的示例代码会直接得到预期的A & B is here。

2. 单条翻译跳过转义(适合仅部分场景需要关闭转义的情况)

如果只是个别翻译不需要转义,可以在调用__方法时,通过参数指定关闭转义:

var STRING_TO_TRANSLATE = "{{name}} is here";
var translation = i18n.__(STRING_TO_TRANSLATE, { 
  name: "A & B",
  escape: false // 仅这条翻译跳过转义
});

补充说明

i18n默认开启escapeValue: true是为了安全,当翻译内容要输出到HTML页面时,转义可以避免恶意脚本注入。但像你这种非HTML场景,关闭转义完全没问题,不会有安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:12:44