JavaScript: 转义(编码?)文件名中的特殊字符
JavaScript: Escape (encode?) special characters in filenames
我有一个 JavaScript 在本地文件上运行外部程序 (mediainfo)。但是,我的某些文件中包含的字符会扰乱我的代码。
代码:
objMedInfo = JSON.parse(proc.execSync('mediainfo "' + currentfilename + '" --output=JSON').toString());
问题是如果当前文件名包含引号或其他一些扩展字符,命令将失败。
有没有办法对当前文件名进行转义或编码以防止这种情况发生?重命名所有可能的文件是不可行的。
使用 execFileSync
而不是 execSync
。这允许您在数组中提供参数,而不是将所有内容都放在必须由 shell.
解析的字符串中
objMedInfo = JSON.parse(proc.execFileSync('mediainfo', [currentfilename, '--output=JSON']).toString());
我有一个 JavaScript 在本地文件上运行外部程序 (mediainfo)。但是,我的某些文件中包含的字符会扰乱我的代码。
代码:
objMedInfo = JSON.parse(proc.execSync('mediainfo "' + currentfilename + '" --output=JSON').toString());
问题是如果当前文件名包含引号或其他一些扩展字符,命令将失败。
有没有办法对当前文件名进行转义或编码以防止这种情况发生?重命名所有可能的文件是不可行的。
使用 execFileSync
而不是 execSync
。这允许您在数组中提供参数,而不是将所有内容都放在必须由 shell.
objMedInfo = JSON.parse(proc.execFileSync('mediainfo', [currentfilename, '--output=JSON']).toString());