C#String.Format()返回错误的字符

Ale*_*kiy 5 .net c# string unicode string-formatting

我得到了string.Format非常奇怪的行为.我形成这样的信息:

protected override string GetMessageText(ManualEventFact reason)
        {
            var messageText = string.Format("????????? ?????? ??????? {0}(\"{1}\")",reason.EventTemplate.DisplayName, reason.Text);
            return messageText;
        }
Run Code Online (Sandbox Code Playgroud)

开头的字母是俄文.但是,在调用方法时,我得到了这个字符串:Äèñïåò÷åð çàêðûë ñîáûòèå ???????("??????? ?? ??????? ? ????? ?????? ??????????").这看起来像string.Format返回硬编码字的非unicode字符.我该如何处理这个问题?PS我也在我的应用程序的另一部分面临这个问题.

xan*_*tos 7

可能是源文件编码中的问题...如果您使用的是Visual Studio,请打开cs文件,然后转到File- > Save (your cs) As,然后在SaveButton 旁边,单击小箭头Save With Encoding,然后Encoding选择Unicode (UTF-8 with signature) - Codepage 65001.