#include <iostream>
#include <string>
int main(int, char**) {
std::string name = "一二三";
std::cout<<name<<std::endl;
}
当以上代码以utf8保存为cpp 编译时报错。
因为我们是以utf8 保存的代码 因此"一二三" 以每个字为3个字符进行保存。
但是编译器编译的过程中是默认以GBK编码进行编译。编译的过程中9个字符会自动吃掉最后一个引号导致代码无法编译
解决此问题需要在头部使用
#pragma execution_character_set("utf-8")
改成如下代码
#include <iostream>
#include <string>
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
int main(int, char**) {
std::string name = "一二三";
std::cout<<name<<std::endl;
}