Express / Multer在ucs2中检测到文本文件的7位编码。 他们是同义词吗?

在一个node.js应用程序中,我收到上传的文本文件,与Multer中间件。 这是一个有效的ucs2编码的文件。 当我尝试读取它时,我得到一个带有buffer.toString()的不可读的string。 它通过buffer.toString('ucs2')得到正确的输出。 但是Multer给出的编码是req.file.encoding === '7bit'

我的问题是: 我可以做“7bit”和“ucs2”之间的直接关系 ,所以每当我从Multer得到“7bit”,我可以做一个buffer.toString('ucs2') ? 或者它也可能意味着其他编码? 在后一种情况下,我怎样才能确保获得正确的文本文件的内容?

这里是代码的一部分:

 var getFile = function(req, res, next) { var encoding = req.file.encoding; fs.readFile(req.file.path, function (err, buffer) { var data = buffer.toString(encoding); } } 

这个确切的代码在这里不起作用,因为encoding给出了“7位”,这是toString无法理解的。

谢谢。

没有“检测”, encoding值仅仅是客户端作为字段/文件的Content-Transfer-EncodingContent-Transfer-Encoding (如果有的话)。 大多数情况下,这个值可以被忽略,因为它没有被真正使用(已经不再)了。 您应该确定基于MIMEtypes的内容编码。