如何在 CSharp 项目(Visual Studio / MSBuild 计算机)中更改源文件编码?

how to change source file encoding in csharp project (visual studio / msbuild machine)?

提问人:tomo 提问时间:5/8/2009 最后编辑:Ryan Gatestomo 更新时间:11/12/2018 访问量:94319

问:

有没有办法强制 VS 始终使用 Unicode,而不是奇怪的 ISO 之类的东西?

我正在 Vista(波兰语区域设置)上使用 Visual Studio 2008 处理 winapp csproject。当我在 Win Server 2003(英语语言环境)上构建项目时,问题就出现了 - 然后波兰语变音符号就消失了。

我调查了该问题是由不正确的源文件编码引起的。看起来源文件没有使用 UTF-8 编码。

Visual-Studio 编码 UTF-8 本地化

评论


答:

114赞 ruslander 5/8/2009 #1

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

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

如何:

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

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

评论

5赞 tomo 5/8/2009
我刚才想通了。我使用“UTF-with-BOM”保存了一个文件进行测试,它修复了几个无效字符串。Visual Studio 是否有任何设置可以对所有源使用 UTF?手动更改几百个文件真的很愚蠢。
0赞 ruslander 5/14/2009
但是,有一个解决方法 - 您可以通过将计算机区域设置设置为英语来让 Visual Studio 使用不同的编码。这反过来又会强制 VS 使用“西欧 - Codepade 1252”而不是“Unicode UTF-8 - Codepage 65001”。同样,这在 Express 版本中有效,我很确定它会在完整的应用程序中工作。
5赞 tomo 5/15/2009
这种解决方法不能让我满意。我故意将计算机区域设置设置为润色,因此无法切换它。切换到 CP 1252 也不是一种选择。我想明确设置CP65001。我花了一些时间进行研究,我认为 VS 2008 模板很好 - 它们都是带有 BOM 的 UTF-8。所有邪恶的根源是来自外部组件生产商的草率编码人员的模板。最近发布的 ASP.NET MVC 也存在此问题。
1赞 Bruno Gomes 3/17/2015
当我看到这些字符错误时,我几乎要发疯了。至少有像你这样的小家伙救了我,tks。
2赞 Ilya Chernomordik 11/12/2018
在 Visual Studio 2017 中,GUI 略有不同,您可以在下面查看我的答案了解详细信息。
6赞 Ania 10/28/2016 #2

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

46赞 Ilya Chernomordik 11/12/2018 #3

在最新的 Visual Studio 2017 中,界面发生了一些变化,您必须选择 .然后在打开的对话框中,您可以选择 .File -> Save [filename] As…Save with Encoding…

enter image description here