Javascript 解码组件mangles路径

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 如何正确解码此内容?您正在路径中编码,

当我将以下内容发布到节点时(简化示例):

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
如何正确解码此内容?

您正在路径中编码,因为反斜杠保留用于转义:

\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