i18next 翻译显示为 unicode 十六进制字符
i18next translation being displayed as unicode hex character
我正在使用 i18next 来处理我正在处理的项目中的翻译,我发现当我将一个字符串传递给包含 /
的翻译时,它正在被转换为 unicode十六进制代码 /
我将 title
设置为:
const title = '2/Double/Twin/Triple/Quadrupple'
翻译调用如下:
{i18n.t('foo', {
title,
amount: ''
})}
翻译设置如下:
{
"foo": "foo bar {{title}} howdee {{amount}}"
}
然而输出是:
Foo bar 2/Double/Twin/Triple/Quadrupple howdee
我如何确保字符不会转换为它们的十六进制代码等价物?
默认情况下,i18next 会转义内容以避免基于用户输入的 xss 攻击。您可以通过添加 -
或提供转义标志来关闭转义。
{
"foo": "foo bar {{- title}} howdee {{amount}}"
}
或
{i18n.t('foo', {
title,
amount: '',
interpolation: { escapeValue: false }
})}
我正在使用 i18next 来处理我正在处理的项目中的翻译,我发现当我将一个字符串传递给包含 /
的翻译时,它正在被转换为 unicode十六进制代码 /
我将 title
设置为:
const title = '2/Double/Twin/Triple/Quadrupple'
翻译调用如下:
{i18n.t('foo', {
title,
amount: ''
})}
翻译设置如下:
{
"foo": "foo bar {{title}} howdee {{amount}}"
}
然而输出是:
Foo bar 2/Double/Twin/Triple/Quadrupple howdee
我如何确保字符不会转换为它们的十六进制代码等价物?
默认情况下,i18next 会转义内容以避免基于用户输入的 xss 攻击。您可以通过添加 -
或提供转义标志来关闭转义。
{
"foo": "foo bar {{- title}} howdee {{amount}}"
}
或
{i18n.t('foo', {
title,
amount: '',
interpolation: { escapeValue: false }
})}