Javascript I18下一个翻译显示为unicode十六进制字符

Javascript I18下一个翻译显示为unicode十六进制字符,javascript,unicode,i18next,Javascript,Unicode,I18next,我在一个项目中使用i18next来处理翻译,我发现当我将一个字符串交给包含/的翻译时,它正在转换为unicode十六进制代码/ 我将标题设置为: const title = '2/Double/Twin/Triple/Quadrupple' 翻译如下: {i18n.t('foo', { title, amount: '$18' })} 翻译设置如下: { "foo": "foo bar {{title}} howdee {{amount}}" } 然而,结果是: Foo

我在一个项目中使用i18next来处理翻译,我发现当我将一个字符串交给包含
/
的翻译时,它正在转换为unicode十六进制代码
/

我将
标题设置为:

const title = '2/Double/Twin/Triple/Quadrupple'
翻译如下:

{i18n.t('foo', {
  title,
  amount: '$18'
})}
翻译设置如下:

{
  "foo": "foo bar {{title}} howdee {{amount}}"
}
然而,结果是:

Foo bar 2/Double/Twin/Triple/Quadrupple howdee $18

如何确保字符不会转换为其十六进制代码等价物?

默认情况下,i18next会转义内容,以避免基于用户输入的xss攻击。您可以通过预加
-
或提供转义标志来关闭转义

{
  "foo": "foo bar {{- title}} howdee {{amount}}"
}


好极了。我在文档中找不到这个。谢谢你的提醒。
{i18n.t('foo', {
  title,
  amount: '$18',
  interpolation: { escapeValue: false }
})}