В приложении node.js я получаю загруженный текстовый файл с промежуточным программным обеспечением Multer. Это действительный файл с кодировкой ucs2. Когда я пытаюсь прочитать его, я получаю нечитаемую строку с номером buffer.toString()
. Он получает правильный результат с buffer.toString('ucs2')
. Но кодировка, которую дает Малтер, - req.file.encoding === '7bit'
.Express/Multer обнаруживает 7-битное кодирование текстового файла, когда он ucs2. Являются ли они синонимами?
Мой вопрос: я могу сделать прямую связь между «7bit» и «ucs2», поэтому всякий раз, когда я получаю «7Bit» от Multer я могу сделать 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
дает «7Bit», который не понят toString
.
Спасибо.
У меня есть частичный ответ: при установке файла UTF-8 в этой пропускной способности Multer обнаруживает «7-битную» кодировку, так что это не поможет. Как тогда я могу определить базовое кодирование буфера? –