我有一台使用nodejs进行网址重定向的服务器。我使用它来进行重定向:
response.writeHead(302, {Location: url}); response.end();
这适用于像google.com这样的普通网址,但是当我有其他字符像西里尔字母时,如果我做了一个url ='ru.wikipedia.org / wiki /Путин,_Владимир_Владимирович'(使用https:// infront)然后重定向错误。在将字符串传递给重定向之前,我是否必须以某种方式对字符串进行重新编码?因为当我创建一个console.log(url)时,它会显示正确的url和cyrilic字母。
经过一些测试后,我设法看到使用node-icu-charset-detector加密的数据如下: ---- [通知] charset:ISO-8859-2 ---- [注意]重定向:https://ru.wikipedia.org/wiki/Путин,_Владимир_Владимирович
我在浏览器上显示的链接就像“https://ru.wikipedia.org/wiki/%1FCB8=,%12;048%3C8@%12;048%3C8@%3E28G”
答案 0 :(得分:0)
您可以对网址进行编码,因为HTTP标头值不支持utf-8编码值:
{{1}}