繁体   English   中英

如何使Visual Studio将所有文件保存为UTF-8而不在项目或解决方案级别签名?

[英]How can I make Visual Studio save all files as UTF-8 without signature on Project or Solution level?

我试图以一种可以在Linux中由gcc编译的方式配置VS c ++项目。 似乎我需要将文件编码为UTF-8而不签名(这不是默认值)。 是否可以在项目或解决方案级别设置某些内容,以便在有人打开解决方案并保存其更改后,文件仍为UTF-8?

请注意,它是一个开放项目,所以我不能要求每个人都改变他们的Visual Studio设置。

Visual Studio将通过转到另存为...并选择“使用编码保存...”并选择“无签名的UTF-8”来删除BOM。 一旦没有BOM保存,VS将不再添加它。 不幸的是,没有办法为VS中的所有文件设置此默认值,并且必须在每次首次保存文件时手动完成。

如果您安装了Cygwin,则可以使用以下小脚批量修改现有文件:

find . -name "*.cpp" -exec vim -c "set nobomb" -c wq! {} \;

或者,如果你没有Cygwin,但你有vim,你可以使用这个批处理脚本。

for %%f in (*.cpp) do call vim -c "set nobomb" -c wq! %%f

注意,在批处理脚本中执行此操作,似乎每次vim退出时都需要按[return],这与cygwin版本不同。

在vs2010中应该可以全局设置 - 请参阅: 没有BOM的UTF-8

我只是在mo与我一起表达,自然也没有这个。 叹。

我这样做的方式:

  1. 写了一个小应用程序,使用记事本调用静默进程。 只需在shell中处理(使用System.Diagnostics)
  2. 创建了一个文件和foreach文件列表,打开并保存为utf-8

花了20分钟写了1.并且执行了几分钟。
我想不出手动打开和保存所有300个文件

这似乎不是你可以放入propertyPage的设置。 我能想到的最好的方法是创建一个简单的脚本(如在此链接中 ),作为预构建步骤运行并重写文件。 只要脚本与项目一起保存,这可能会起作用,但可能会非常烦人。

看来Visual Studio正在根据文件内容猜测字符编码。 如果你在每个文件中放置一个标准的注释标题,并且该注释包含一个明确的UTF-8字符,VS应该做正确的事情。 另一个好处是,某些Linux实用程序也会将该文件识别为明确的UTF-8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM