修改VISUAL STUDIO EXPRESS 2012新建C++文件编码

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本文标题:修改Visual Studio Express 2012新建C++文件编码
  • 本文链接:http://zengrong.net/post/1900.htm


2013-12-03 更新:增加关于UTF-8(BOM)的说明



我突然发现Visual Studio Express 2012(后简称为VS)建立的源文件是cp936(GB2312)编码,这个以后在Linux和Mac下面编译起来可能会有麻烦。

初步解决

于是,我尝试将已有项目中的文件改成了UTF-8格式,并设置保存格式为UTF-8,大概有这样几步:

  1. “工具-选项-环境-文档-不能以代码页的编码格式保存数据时将文档保存为Unicode”
  2. “工具-选项-文本编辑器-常规-自动检测不带签名的UTF-8编码”
  3. 在文件打开的情况下,选择“文件-高级保存选项”,设置编码和行尾
  4. 在另存文件的时候选择“编码保存”

请原谅我使用中文描述界面,因为当时安装VS的时候手贱选了简中界面,然后无论如何都没法安装英文语言包……

上面的1、2两项好像没什么用,关键是第3项。

根据我的习惯,将编码设置为“Unicode(UTF-8无签名) – 代码页 65001”,将行尾设置为“Unix(LF)”。

然后测试保存,再用Vim打开文件查看编码,发现文件确实保存为UTF-8编码了。

但是(什么事情都有但是),当我重新打开这个文件的时候,重新查看“高级保存选项”,发现编码又变成了“简体中文(GB2312)-代码页936”。

届时维尼奥神马!!!

第二步解决

我猜测,是由于VS无法识别不带签名的UTF-8编码文件造成的。

要将一个文本文件被作为UTF-8编码对待,可能需要以下几个条件(或者之一):

  1. 文件中包含UTF-8签名;
  2. 文件中包含UTF-8编码的字符(不能全是ASCII可以解释的字符);
  3. 编辑器优先以UTF-8编码来解析。

例如我对Vim的设置,就是将UTF-8侦测放在优先的位置

那么,让我来验证一下猜测是否正确。

在“高级保存选项”中将编码设置为“Unicode(UTF-8带签名) – 代码页 65001”,然后保存。重新打开,编码没有变化。

这说明我的猜测是正确的。

那么,再来验证一下上面条件的第2项是否正确。

在“高级保存选项”中将编码设置为“Unicode(UTF-8无签名) – 代码页 65001”,加入一些中文内容,然后保存。重新打开,编码没有变化。

那么,现在我可以断定,VS可以正常识别UTF-8编码,但我需要满足上面的条件1或者2。

需要注意的是,即使是已有的项目中,所有文件都已经是UTF-8编码(例如cocos2d-x的项目模版),但使用VS打开并进行保存后,原来的文件编码都会变成CP936。这是因为原来的模版文件中的文件是UTF-8(无签名)的。至于解决方法,参考上面了。

新建C++文件的编码

修改下面这几个模版文件的编码和行尾值,在VS中新建的cpp或者h文件,默认就是UTF-8编码了(路径自己改):

  • c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\VCProjectItems_WDExpress\newc++file.cpp
  • c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\VCProjectItems_WDExpress\hfile.h
  • c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\VCNewItems_WDExpress\newc++file.cpp
  • c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\VCNewItems_WDExpress\hfile.h

这些文件默认都是0字节的空文件,因此建议在其中加入一些注释,并将文件编码设置为UTF-8(带签名),行尾设置为Unix格式即可。

如果希望修改更多的东西,比如wizard之类的,可以看看这篇文章:VS2008中自定义C++工程模板与修改新建文件默认编码的办法

最后的问题

这种修改默认文件模版为 UTF-8(带签名) 的方法,其实是不被推荐的,原因是这本来是微软一厢情愿的做法。而我们的项目本来就应该跨平台,这种文件在Mac平台下编译,可能会有问题。

详见这篇:「带 BOM 的 UTF-8」和「无 BOM 的 UTF-8」有什么区别?网页代码一般使用哪个?

但是,由于我 使用Eclipse+CDT开发Cocos2d-x(不用Visual Studio) 的尝试失败了,所以好像只能被迫接受这种现象了。


关联文章

  1. 在Visual Studio Express 2012中创建一个cocos2d-x的win32项目
  2. Flash Builder安装和卸载错误的解决办法
  3. [译]升级Flash Builder 4.7中的AIR SDK
  4. Cocos2d-x VS2012 HelloCpp调试
  5. 用swfobject实现FlashPlayer8的快速安装(Express Install)

修改VISUAL STUDIO EXPRESS 2012新建C++文件编码

时间: 2024-10-12 16:49:27

修改VISUAL STUDIO EXPRESS 2012新建C++文件编码的相关文章

在Visual Studio中开发Matlab mex文件,生成mexw64/mexw32

csunking贡献,2015-9-22 1712 1.   概述 通过使用C/C++与Matlab混合编程,既可以享受到C代码快速执行的速度,又可以方便的使用Matlab众多的库函数和强大的绘图功能.让Matlab调用C函数是通过DLL文件实现的,而这个DLL的开发过程不仅仅可以使用Matlab自带的mex命令,还可以使用VC++开发环境,使用VC有很多好处,一是让我回到了原来熟悉的开发环境中,二能够使用更加标准的C++编译器,第三点也是最爽的,可以使用VC强大的调试功能. 此次文档更新时使用

手动修改Visual Studio 版本互转工具

首先把sln文件用记事本打开,在文件开头把Microsoft Visual Studio Solution File, Format Version 12.00# Visual Studio 2012改为:Microsoft Visual Studio Solution File, Format Version 11.00# Visual Studio 2010关闭保存,然后再用记事本打开源码目录下的.csproj文件,7.        将<TargetFrameworkVersion>v4

《CLR Via C#》Visual Studio编译之后的.pdb文件

在用Visual Studio新建项目之后,进行编译,总会发现.pdb文件: 在CLR Via C#中讲到,.pdb文件是用来调试用的.pdb是Program Database的简写,它能够进行source code和IL之间的映射. The compiler produces a Program Database (PDB) file only if you specify the /debug(+/full/pdbonly) switch. The PDB file helps the de

Visual Studio 2013 为C#类文件添加版权信息

更改如下目录下的模版文件即可实现添加版权信息功能 C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class\Class.cs (默认路径) 如果安装被更改请到:[安装目录]\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class\Class.cs //=====================================

Microsoft Visual Studio下编译缺少头文件unistd.h解决办法

问题 使用Visual Studio 2012在Win7下编译一个来自于Linux平台的源文件时,要求使用头文件uninstd.h,报错: fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory 解决办法 对于VS2012来说,我们可以在默认库文件夹下(我的电脑是C:\Program Files\Microsoft Visual Studio 10.0\VC\include)添加一个un

怎么将visual studio项目打包生成dll文件

1.打开电脑再打开visual studio软件,在软件里面新建一个项目,文件---->新建---->项目,打开新建项目窗口. 2.选择C#类工程,并为项目命名. 3.将类库文件class1重命名为其他名称,如这边的SQLDao(自行名),然后在弹出的确认窗口单击确定. 4.在类库文件中输入你所需要的内容. 5.右击--->生成,项目将编译生成DLL文件 6.打开项目所在的bin文件下的Debug文件夹,可以看到文件夹下已经生成我们所需要的DLL文件了, 原文地址:https://www

Visual Studio 2013 无法使用:在文件中查找(Ctrl+Shift+F)

最近遇到一个问题就是在win7(32位.64位都试过)上安装Visual Studio 2013(专业版.旗舰版都试过)之后,打开项目,使用:在文件中查找(Ctrl+Shift+F)功能时,会突然奔溃. 后来,突然想到在安装的时候,右键,以管理员身份安装. 于是,尝试了一下,搞定!

更改Visual Studio 2010/2012/2008的主题设置

一.更改主题: 主题网站:http://studiostyl.es/ Visual Studio 2010发布也已经有一段时间了,不过安装后默认的白底的主题长时间看代码可能会感觉眼睛酸痛,况且时间长了我们也希望能够换换口味,studiostyles这家主题网站则专门给我们提供了不同口味的Visual Studio主题样式,比如评分比较高的Son of Obsidian就是一款暗色调背景的主题,安装后将不会感觉到原来自带的那种白底界面的刺眼,可以有效的辅助我们长时间编程. 下载后,你将得到扩展名为

使用Visual Studio将C#生成DLL文件的方法

1.命令方式 打开Visual Studio安装目录下的开发人员命令提示 译 File.cs 以产生 File.exe csc File.cs 编译 File.cs 以产生 File.dll csc /target:library File.cs 编译 File.cs 在该目录下产生一个对应名字的.dll文件csc /out:My.exe File.cs 通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件.输出为 File2.exe csc /define:DEBUG /op