在 node.js 应用程序中,我使用 Multer 中间件接收上传的文本文件。这是一个有效的 ucs2 编码文件。当我尝试阅读它时,我得到一个不可读的字符串buffer.toString()。它确实得到了正确的输出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);
}
}
Run Code Online (Sandbox Code Playgroud)
该确切的代码在这里不起作用,因为encoding给出了“7bit”,而toString.
谢谢。
我最近已将 Visual Studio 2022 更新到 17.1.0,现在出现了这个奇怪的错误,但并非每个项目都出现此错误(到目前为止只有一个项目)。我测试过其他项目,它们仍然工作正常。
但这一项目不会发布到 IIS。它在本地构建/运行,可以发布到文件夹配置文件,并且以前的版本可以在 IIS 中运行。
这是一个 .NET 6.0 Web API 项目。
在“输出”窗口中我可以看到这两个错误:
Error CTC1000: Method not found: 'Void Microsoft.VisualStudio.Containers.Tools.Shared.Functions.AzureFunctionsFeedDataProvider..ctor(Microsoft.VisualStudio.Containers.Tools.Common.Services.Logging.ILoggingService)'.
Error MSB4018: The "KillAppInsideContainer" task failed unexpectedly.
Run Code Online (Sandbox Code Playgroud)
但我没有在 Azure 上部署,也没有在容器上部署。该项目是为 Docker 使用而设置的,但我注释掉了<DockerDefaultTargetOS>.csproj 的部分,并将其dockerfile从项目中排除以测试它是否影响结果;它消除了KillAppInsideContainer错误,但没有消除另一个错误。
任何帮助表示赞赏!谢谢