Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#String.Format()返回错误字符_C#_.net_String_Unicode_String Formatting - Fatal编程技术网

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

C#String.Format()返回错误字符,c#,.net,string,unicode,string-formatting,C#,.net,String,Unicode,String Formatting,我发现string.Format的行为非常奇怪。我形成这样的信息: protected override string GetMessageText(ManualEventFact reason) { var messageText = string.Format("Диспетчер закрыл событие {0}(\"{1}\")",reason.EventTemplate.DisplayName, reason.Text);

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

protected override string GetMessageText(ManualEventFact reason)
        {
            var messageText = string.Format("Диспетчер закрыл событие {0}(\"{1}\")",reason.EventTemplate.DisplayName, reason.Text);
            return messageText;
        }
开头的字母是俄语。但是,在调用方法时,我得到了这个字符串:
。这看起来像是string.Format为硬编码字返回的非unicode字符。我如何处理这个问题?

另外,我在我的应用程序的另一部分中也遇到了这个问题。

可能是源文件编码的问题。。。如果您使用的是Visual Studio,请打开cs文件,然后转到

文件
->
将(您的cs)另存为
,然后在
保存
按钮附近,单击小箭头,
使用编码保存
,对于
编码
选择
Unicode(带签名的UTF-8)-代码页65001
,这很有效!非常感谢,但是有没有办法强制VS使用UTF编码保存所有cs文件?我不想浏览所有文件并检查它们是否正确保存…@AlexVoskresenskiy如果在Visual Studio中创建cs文件,默认情况下它应该是UTF-8。。。这显然排除了您使用另一个文本编辑器编写的文件,然后将其“包含”到项目中。如果你有一堆文件,你不确定它们的编码,我不认为在Visual Studio中有办法大规模更改它们的编码…@AlexVoskresenskiy有,但我非常清楚会发生什么。。。如果一个文件不是用UTF8/Unicode编码的,它的编码就不是“清晰的”或“隐式的”,所以转换可能会“丢失”数据。嗯,无论如何,这是最糟糕的尝试。再次感谢你的帮助@AlexVoskresenskiy首先备份你的sorce文件!:-)