Javascript node.js无法打开带有非ascii字符的文件名

Javascript node.js无法打开带有非ascii字符的文件名,javascript,node.js,non-ascii-characters,Javascript,Node.js,Non Ascii Characters,在Windows 10上使用node.js,我试图打开文件名中包含非ascii字符的文件。节点表示文件不存在。例如: var songfile = "G:/Music/Music/113/113 degrés/03 36 quai des orfevres.mp3" fs.open(songfile, 'r', function(err, fd) { if (err) winston.error('file does not exist: ', songfile); else

在Windows 10上使用node.js,我试图打开文件名中包含非ascii字符的文件。节点表示文件不存在。例如:

var songfile = "G:/Music/Music/113/113 degrés/03 36 quai des orfevres.mp3"    

fs.open(songfile, 'r', function(err, fd) {
  if (err) winston.error('file does not exist: ', songfile);
  else winston.info('file exists: ', fd);
});

有办法解决这个问题吗?

为什么路径没有用引号括起来?你应该会得到语法错误。对不起,我打出来了,忘了。我实际上是在处理从mongodb中提取的文件路径。所有ascii文件名都有效,非ascii文件名不起作用。您确定此文件确实存在于此路径上吗?可能尝试用“\\”替换“/”?首先:JavaScript通常期望编码为UTF-8。其次,正如@Gothdo所建议的:Windows路径通常使用反斜杠。嗨,Gothdo和Burki,我想你们都是对的。基本上,我从iTunes中获取数千个文件路径,并将它们传递给cmd exec。我正在撤销它们,以便cmd(fpcalc)读取它们(正确)路径是:G:\Music\Music\113\113 degrés/03 36 quai des orfevres.mp3 itunes撤销它:G:/Music/Music/113/113%20degr%C3%A9s/03%2036%20quai%20des%20orfevres.mp3我使用节点“unescape”创建cmd接受的格式。G:/Music/Music/113/113 degrés/03 36 quai des orfevres.mp3“unescape”函数将%C3%A9转换为é而不是é。我不熟悉编码,不知道为什么。