问题遇到的现象和发生背景
学习C++在做一个简单的项目时发现一个乱码问题,尝试了多种方法无法解决
问题相关代码
使用函数内赋值的方式输出结果正确:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string i;
i="你好";
cout<<i<<endl;
return 0;
}
运行结果
你好
但是使用cin函数输入再输出出现乱码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string i;
cin>>i;
cout<<i<<endl;
return 0;
}
运行结果
你好
��
我的解答思路和尝试过的方法
思索再三不知道是哪里的编码出现问题,想到可能是编译器使用的编码跟我的不一样导致的?
为何函数内直接给i赋值可以正常打印,我自己用cin函数敲进去不行
由于原本使用的是UTF-8编码,尝试更改电脑时区/区域里的编码方式为GBK编码后正常显示了
难道cin函数只能识别GBK编码的中文输入?
我想要达到的结果
但是我想用UTF-8编码的方式也能正常显示,请问大家有没有不更改编码方式也能正确显示的方法?