将所有* .cs文件转换为VisualStudio中的unicode

时间:2017-05-05 09:08:02

标签: visual-studio unicode utf-8 resharper visual-studio-2017

我的团队没有注意文件编码(这是正确的,因为人类不应该受到文件编码的困扰)。但是有些文件保存在utf8中,有些文件用区域编码保存(cp1250)。

我需要一个可以做两件事的工具:

1。对将来创建的所有文件强制使用utf8

2。将具有给定扩展名(或至少* .cs)的所有现有文件转换为utf-8

如何使用Visual-Studio或Resharper插件和/或外部工具实现这些目标?

我尝试用PowerShell做#2,但它很乱(有时会移除/添加最后一行)。可能有一些我可以使用的免费软件,第一点对我来说更重要。

2 个答案:

答案 0 :(得分:2)

重新。 #1:有选项

Environment | Documents | Save documents as Unicode when data cannot be saved in codepage 

但是总是。似乎没有办法强迫这个(并且没有可能的扩展)。有没有考虑写一个扩展名:-)?

重新。 #2:它应该与PSH相关(但最终的最终结束可能会弄乱最简单的方法)。但请参阅https://stackoverflow.com/a/850751/67392

编辑 :这似乎是一个常见请求(请参阅User Voice)。有关该用户语音的评论之一请求在VS2017中您可以使用.editorconfig来设置文件的默认编码。

答案 1 :(得分:2)

是的,这是可能的。

强制所有文件使用UTF-8

使用.editorconfig作为前面提到的@Richard。从Visual Studio v15.3开始,.editorconfig支持得到修复和改进。解决方案级别的这个简单.editorconfig足以确保每个*.cs都保存在 UTF-8而无需BOM

root = true

[*.cs]
charset = utf-8

此外,它还会转换由Visual Studio手动打开并保存的任何现有文件。

将所有现有代码文件转换为UTF-8

我测试了线程Save all files in Visual Studio project as UTF-8的一些答案,但是他们工作得非常糟糕:非拉丁字符(在我的情况下是西里尔字母)已被转换为不可读的字形。相反,Visual Studio本身可以完美地进行“开放式保存”转换。

要在解决方案中自动打开并重新保存所有代码文件,请使用简单的R#技巧:

  1. 将适用于您所有文件的任何R#代码样式规则设置为严格否定贵公司代码约定的值。例如,大括号布局是一个显而易见的选择。
  2. 使用Code Cleanup feature(默认为Ctrl+E,C)将其应用于整个解决方案。选择最简单的内置“重新格式代码”模板,以尽量减少更改。
  3. 格式化并保存所有文件后,将R#规则还原为原始文件并再次运行Code Cleanup
  4. 之后所有*.cs文件都应保存在UTF-8中(对于R#支持的其他文件类型也是如此)。漂亮的格式作为奖金。