如何在csharp项目中更改源文件编码(visual studio/msbuild机器)?

tom*_*omo 53 encoding localization utf-8 visual-studio

有没有办法迫使VS总是使用Unicode,而不是奇怪的ISO-something?

我正在使用Vista上的Visual Studio 2008(波兰语语言环境)开发winapp csproject.当我在Win Server 2003(英语语言环境)上构建项目时出现问题 - 然后波兰语变音就消失了.

我调查过这个问题是由不正确的源文件编码引起的.看起来源文件没有使用UTF-8编码.

rus*_*der 105

问题:由于我刚刚添加的国际字符,从命令行启动的编译器无法处理源文件.

解决方案:以UTF-8编码显式保存源文件以保留国际字符.

如何:

  • 在Visual Studio中打开有问题的文件.
  • 在文件菜单上单击"高级保存选项"
  • 从"编码"组合选择"Unicode(UTF-8 ......")
  • 单击确定.

你已经准备好了.承诺取悦构建服务器和其他团队等待绿色.

  • 我刚才想出来了.我使用'UTF-with-BOM'保存了一个文件进行测试,并修复了几个无效的字符串.是否有任何Visual Studio设置为所有源使用UTF?几百个文件手动更改它真的很愚蠢. (5认同)
  • 这种解决方法不满足我.我将计算机区域设置设置为有意抛光,因此切换它不是一种选择.切换到CP 1252也不是一种选择.我想明确设置CP65001.我花了一些时间进行研究,我认为VS 2008模板很好 - 它们都是带有BOM的UTF-8.所有邪恶的来源都是来自外部组件生产商的草率编码器的模板.最近发布的ASP.NET MVC也有这个问题. (5认同)
  • 在 Visual Studio 2017 中,GUI 有点不同,您可以查看下面我的答案以了解详细信息。 (2认同)

Ily*_*dik 14

在最新的Visual Studio 2017中,界面有所更改,您必须选择File -> Save [filename] As…。然后,在打开的对话框中可以选择Save with Encoding…

在此处输入图片说明


小智 6

我在 VS2015 vb.net 项目中遇到了同样的问题,并通过<CodePage>1250</CodePage>在 vbproj/csproj 文件中添加标记来解决它。我在<SchemaVersion>标记之后做了它,重建了项目并且它对我有用。我在处理诸如 ?,? 之类的波兰语字母时遇到了麻烦。等等。你也可以试试 UTF-8 - 65001 但我没有检查它是否有效。