【发布时间】:2019-11-20 15:20:43
【问题描述】:
我有一个使用 nodejs 进行 url 重定向的服务器。我用它来进行重定向:
response.writeHead(302, {Location: url}); response.end();
这适用于像 google.com 这样的普通网址,但是当我有其他字符(如西里尔字母)时,它会出错,例如,如果我执行 url = 'ru.wikipedia.org/wiki/Путин,_Владимир_Владимирович'(使用 https:// infront) 然后是重定向错误。在将字符串传递给重定向之前,我是否必须以某种方式重新编码字符串?因为当我创建一个 console.log(url) 时,它会显示带有西里尔字母的正确 url。
经过更多测试后,我设法看到使用 node-icu-charset-detector 加密的数据如下: ----[注意] 字符集:ISO-8859-2 ----[注意] 重定向:https://ru.wikipedia.org/wiki/Путин,_Владимир_Владимирович
我在浏览器上获得的链接类似于“https://ru.wikipedia.org/wiki/%1FCB8=,%12;048%3C8@%12;048%3C8@%3E28G”
【问题讨论】: