完美解决Cocos2d-x C++ VS 中文乱码的问题

Cocos2d-x C++ Windows下Visual Studio中文乱码怎么办?Cocos2d-x C++如何高效实现跨平台正常输出中文?

先来说下解决方案吧,往下有时间再探讨原理:

解决方案:

概要:

  1. 使用高版本的VS,将源代码文件保存为utf-8格式,接着在源码开头处告诉编译器要用utf-8编码方案进行解析源代码。
    这样做直接就可以了正常解析源码中的中文了,无需使用xml文档或者对源码中的中文字符进行额外的转码处理。
  2. 特别注意:使用Cocos2d-x创建Label或者其他对象时,请确保所使用的字体含中文。
    如果所用的字体不包含中文(预览图显示时会显示成Abg,体积小,一般1兆左右),那么照样是没法正常显示的,因为字体本身都不包含对中文字符的处理,使用这样的字体怎么可能会正常显示中文呢?字体如果含中文,一般预览图会显示成“简体字”,而且体积一般比较大(几十兆)
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第1张图片

具体步骤

  1. 安装VS2019(应该Visual Studio 2015以上都可以,不过我的是VS2019)

  2. 【文件】-》【高级保存选项】-》【UTF-8带签名 65001】
    注意高级选项默认情况下未开启,需要手动开启,如未开启,参考本文解决方案的【附加步骤:VS开启高级保存选项】。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第2张图片
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第3张图片

  3. 在源代码文件开头处告诉编译器要使用utf-8编码方案进行解析源代码,不这样声明会默认采用GB2312的解码方案进行解码,这样的话如果包含中文,有较大概率会导致出错,编译器无法正常解析源码内的变量、函数等内容。

#if defined(_MSC_VER) && (_MSC_VER >= 1900)
#pragma execution_character_set("utf-8")
#endif

完美解决Cocos2d-x C++ VS 中文乱码的问题_第4张图片
Visual Studio 2015的_MSC_VER定义是1900,如果已确定使用的VS版本高于VS2015,可以直接使用。

#pragma execution_character_set("utf-8")

附加步骤:VS开启高级保存选项

  1. 单击【工具】|【自定义】命令,弹出【自定义】对话框。完美解决Cocos2d-x C++ VS 中文乱码的问题_第5张图片
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第6张图片
  2. 单击【命令】标签,进入【命令】选项卡。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第7张图片
  3. 在【菜单栏】下拉列表中,选择【文件】选项。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第8张图片
  4. 单击【添加命令】按钮,弹出【添加命令】对话框。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第9张图片
  5. 在【类别】列表中,选择【文件】选项;在“命令”列表中,选择【高级保存选项】选项。接着单击【确定】按钮,关闭【添加命令】对话框。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第10张图片
  6. 选中【控件】列表中的“高级保存选项”选项,可以单击【上移】或者【下移】以及【删除】按钮,调整该命令的位置。
    最后单击【关闭】按钮,完成【高级保存选项】命令的添加操作。
    完美解决Cocos2d-x C++ VS 中文乱码的问题_第11张图片

你可能感兴趣的:(软件使用,C++,COCOS2D-X,Cocos2d-X,二维游戏开发)