Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

导读:本篇文章讲解 Visual Studio 2017 UTF-8 无 BOM 一站式解决办法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题背景:最近捡起C++,使用VS 2017平台。因为以前的编程习惯,喜欢使用UTF-8 无 BOM 的编码格式,好让自己的代码全球通用。但是VS 2017 对这个问题不是很友善。但最终找到了解决办法。

问题标签:

  UTF-8 无 BOM 乱码;UTF-8 无 BOM “常量中有换行符”错误提示;window cmd UTF-8 无 BOM 显示乱码;

  UTF-8 without BOM garbled; UTF-8 without BOM “Line breaks in constants” error message; window cmd UTF-8 without BOM shows garbled characters;

问题解决:

  一:解决自己源码的编码格式

    方法A(推荐):工具->扩展和更新->联机->搜索 forceutf8    选择No BOM 的那一个。   在你保存文件的时候,这个插件会将文件自动保存为UFT8 无 BOM。

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    方案B:文件-> 另存为 ->编码保存   选择 UFT-8 无签名

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    方案C:高级保存选项(默认是隐藏的,可以调出来。方法自行百度或googl…),界面如下

     Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

  二:设定编译器 在编译 链接 时的编码格式,如果不设置,使用char数组保存字符时,会出现不可理解的错误提示 “常量中有换行符”或等等等问题

    (1)在你的解决方案创建完成并打开之后 选定此方案。然后 项目->属性->(最好选择所有配置 所有平台)配置属性->常规->字符集->使用多字节字符集

    注意:我自己使用中这个配置感觉并没有效果,但是为了保险起见,还是选择上吧。下面一个步骤比较重要。

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    (2)在你创建C++的源文件后,才会出现C/C++配置栏。选定解决方案,参考上一步 项目->属性->C/C++->命令行->输入/utf-8并确定。

    这一步的解释,可以参考官方文档(推荐使用英文阅读):https://docs.microsoft.com/zh-cn/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=vs-2017

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

  三:设置window控制台(又名CMD或命令行窗口)为UTF-8格式,解决显示界面的编码问题

    在自己的源代码 加入 system(“chcp 65001”);如下:

    

复制代码

#include <iostream>
#include <string>

using namespace std;
int main()
{
    system("chcp 65001");
    char x[] = "的";
    int i = x[0];
    int j = x[1];
    int k = x[2];
    cout << x << endl;
    cout << hex << i << endl;
    cout << hex << j << endl;
    cout << hex << k << endl;

    string str_out_1 = "你的名字?";
    string str_out_2 = "whats your name";
    cout << str_out_1 << endl << str_out_2 << endl;
    system("pause");
}

复制代码

    结果:

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

    错误的结果(没有写入上面的代码时):

    Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/96585.html

(1)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!