C# String.Format() returns 坏字符

C# String.Format() returns bad characters

我 string.Format 的行为非常奇怪。我这样形成消息:

protected override string GetMessageText(ManualEventFact reason)
        {
            var messageText = string.Format("Диспетчер закрыл событие {0}(\"{1}\")",reason.EventTemplate.DisplayName, reason.Text);
            return messageText;
        }

开头的字母是俄语。但是随后,在调用方法中,我得到了这个字符串:Äèñïåò÷åð çàêðûë ñîáûòèå Тревога("Тревога на объекте с точки зрения диспетчера")。这似乎 string.Format 为硬编码单词返回了非 unicode 字符。我该如何处理这个问题? P.S。我在应用程序的其他部分也遇到过这个问题。

可能是源文件的编码问题...如果您使用的是Visual Studio,请打开cs文件,然后转到File->Save (your cs) As,然后在 Save 按钮附近,单击小箭头 Save With Encoding,对于 Encoding select Unicode (UTF-8 with signature) - Codepage 65001.