C# streamreader编码在远程计算机上不工作

C# streamreader编码在远程计算机上不工作,c#,encoding,C#,Encoding,我有一个从文件中读取的电子邮件正文。我有编码问题,我在过去已经解决了。我尝试并验证了这在我的电脑上正常工作。当我在远程服务器上启动应用程序并让它运行时,它会像不使用UTF8一样运行 using StreamReader sr = new StreamReader("C:\\EmailTemplates\\Spanish.html", Encoding.UTF8); body = await sr.ReadToEndAsync(); var enco

我有一个从文件中读取的电子邮件正文。我有编码问题,我在过去已经解决了。我尝试并验证了这在我的电脑上正常工作。当我在远程服务器上启动应用程序并让它运行时,它会像不使用UTF8一样运行

using StreamReader sr = new StreamReader("C:\\EmailTemplates\\Spanish.html", Encoding.UTF8);              
body = await sr.ReadToEndAsync();
var encodingused = sr.CurrentEncoding;
我已经使用远程调试器确认CurrentEncoding remote和localy都是UTF8。我正在使用.NETCore3.1

来自远程计算机的电子邮件正文:�格雷西亚斯·波尔·埃莱吉尔

本地开发人员的电子邮件正文:“Gracias por elegir”


我发现了问题所在,问题不在于代码。问题是我使用PowerShell编辑文件并将其上载到环境中,这是使用Octopus Deploy进行自动部署的一部分。在PS中编辑文件将文件更改为其他格式(ANSI)。要在使用PS命令Set content时解决此问题,我需要指定UFT8
Set content-Path$file-Encoding UTF8

,并在本地添加它,即使我根本没有添加编码,自动检测功能也只能在文本文件包含字节顺序标记(BOM)时工作。如果使用本地编码,则没有BOM,StreamReader将使用UTF-8或您指定的编码。显然,这里的编码不是UTF-8。尝试代码页
1252
“ISO-8859-1”
(例如
Encoding.GetEncoding(“ISO-8859-1”)
Encoding.GetEncoding(1252)
)。