Javascript 解码组件mangles路径
当我将以下内容发布到节点时(简化示例): node.js代码:Javascript 解码组件mangles路径,javascript,node.js,Javascript,Node.js,当我将以下内容发布到节点时(简化示例): node.js代码: app.post('/action', function (request, response) { var file = request.body['path']; console.log(file); console.log(decodeURIComponent(file)); }); 我得到以下输出: E%3A%0Coo%08ar.baz E:♀oar.baz 如何正确解码此内容?您正在路径中编码,
app.post('/action', function (request, response) {
var file = request.body['path'];
console.log(file);
console.log(decodeURIComponent(file));
});
我得到以下输出:
E%3A%0Coo%08ar.baz
E:♀oar.baz
如何正确解码此内容?您正在路径中编码,因为反斜杠保留用于转义:
\f表单提要
\b退格
当编码后,它们变成:
%0C
%08
发件人:
要在字符串中包含文字反斜杠,必须对
反斜杠字符
“E:\\foo\\bar.baz”
有趣的是,如果路径更改为:E:\\foo\\bar.baz
,那么decodeURIComponent
工作正常。同样有趣的是decodeURIComponent(“E%3A%0Coo%08ar.baz”)在node.js REPL上按预期工作。这是一个公平的观点,我现在可以看出这不是node.js问题。版主是否可以编辑标题并删除“node.js”?这是有意义的,因此修复方法是将反斜杠替换为双反斜杠,即e:\\foo\\bar.baz
?或使用正斜杠/
。如果这是您的目标,Windows可以处理这两种情况。我认为编码是不必要的。
E%3A%0Coo%08ar.baz
E:♀oar.baz