使用 npm latinize 翻译特殊字符不能动态工作
Translate Special Characters with npm latinize is not working dynamically
我正在使用 latinize 将德语的特殊字符翻译成英语,只有当我在单引号或双引号内传递字符串时它们模块才起作用,但当我将它们存储在变量中传递时它们不起作用。
import latinize from 'latinize';
并且在渲染中,我对此进行了调试,它工作正常,
console.log('render', latinize('VfL Osnabrück'))
还有当我通过我的
let tag_name = 'VfL Osnabrück';
console.log('render', latinize('VfL Osnabrück'))
它会再次正常工作,但是当我从我的 api 中得到 tag_name 时,它就不能正常工作了。完整代码如下
let tag_parsing = sub_category_id.split('%20');
let tag_string = '';
for (let i = 0; i < tag_parsing.length; i++) {
tag_parsing[i];
// tag_parsing[0] == Vlf
// tag_parsing[1] == Osnabrück
console.log('latinized text', tag_parsing[i]);
tag_string += ' ' + tag_parsing[i]
}
输出
拉丁化文本的输出==> Osnabr%C3%BCck
引号内的拉丁化文本输出 ==> Osnabruck
我也尝试使用 .toString() 但没有用
我认为您尝试处理来自 URL 的查询字符串的方式可能有问题。
这是我用来在分叉的代码箱中处理您的查询字符串的逻辑片段。为了方便起见,我使用了功能组件,但可以在基于 class 的组件中使用相同的逻辑。
// get the search string
const { search } = useLocation();
const [latinizedValue, setLatinizedValue] = React.useState("");
React.useEffect(() => {
console.log({ search });
// create search params object
const newParams = new URLSearchParams(search);
const key = newParams.get("key");
const value = newParams.get("value")?.trim();
console.log("Param", key, `"${value}"`);
console.log("latinize param:", `"${latinize(value)}"`);
setLatinizedValue(latinize(value));
}, [search]);
演示
我使用的字体系列不包含特殊的德语字符,最后我更改了支持德语特殊字符的字体系列,一切顺利,拉丁化也可以正常工作。
我正在使用 latinize 将德语的特殊字符翻译成英语,只有当我在单引号或双引号内传递字符串时它们模块才起作用,但当我将它们存储在变量中传递时它们不起作用。
import latinize from 'latinize';
并且在渲染中,我对此进行了调试,它工作正常,
console.log('render', latinize('VfL Osnabrück'))
还有当我通过我的
let tag_name = 'VfL Osnabrück';
console.log('render', latinize('VfL Osnabrück'))
它会再次正常工作,但是当我从我的 api 中得到 tag_name 时,它就不能正常工作了。完整代码如下
let tag_parsing = sub_category_id.split('%20');
let tag_string = '';
for (let i = 0; i < tag_parsing.length; i++) {
tag_parsing[i];
// tag_parsing[0] == Vlf
// tag_parsing[1] == Osnabrück
console.log('latinized text', tag_parsing[i]);
tag_string += ' ' + tag_parsing[i]
}
输出
拉丁化文本的输出==> Osnabr%C3%BCck
引号内的拉丁化文本输出 ==> Osnabruck
我认为您尝试处理来自 URL 的查询字符串的方式可能有问题。
这是我用来在分叉的代码箱中处理您的查询字符串的逻辑片段。为了方便起见,我使用了功能组件,但可以在基于 class 的组件中使用相同的逻辑。
// get the search string
const { search } = useLocation();
const [latinizedValue, setLatinizedValue] = React.useState("");
React.useEffect(() => {
console.log({ search });
// create search params object
const newParams = new URLSearchParams(search);
const key = newParams.get("key");
const value = newParams.get("value")?.trim();
console.log("Param", key, `"${value}"`);
console.log("latinize param:", `"${latinize(value)}"`);
setLatinizedValue(latinize(value));
}, [search]);
演示
我使用的字体系列不包含特殊的德语字符,最后我更改了支持德语特殊字符的字体系列,一切顺利,拉丁化也可以正常工作。