我正在尝试以一种可以在Linux中由gcc编译的方式配置VS c ++项目。似乎我需要将文件编码为UTF-8而不签名(这不是默认值)。是否可以在项目或解决方案级别设置某些内容,以便在有人打开解决方案并保存其更改后,文件仍为UTF-8?
请注意,这是一个开放项目,所以我不能要求每个人都改变他们的Visual Studio设置。
答案 0 :(得分:17)
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版本不同。
答案 1 :(得分:1)
应该可以全局设置 - 请参阅: UTF-8 without BOM
只有和我一起表达对战,自然也没有这个。叹息。
答案 2 :(得分:0)
这似乎不是您可以放入propertyPage的设置。我能想到的最好的方法是创建一个简单的脚本(如在this link中),它作为预构建步骤运行并重写文件。只要脚本与项目保持一致,那就可能完成这项工作,但可能会非常烦人。
答案 3 :(得分:0)
Visual Studio似乎正在根据文件内容猜测字符编码。如果你在每个文件中放置一个标准的注释标题,并且该注释包含一个明确的UTF-8字符,VS应该做正确的事情。另一个好处是,某些Linux实用程序也会将该文件识别为明确的UTF-8。
答案 4 :(得分:0)
我这样做的方式:
花了20分钟写了1.并且执行了几分钟 我想不出手动打开和保存所有300个文件