c++ 如何将十六进制 字节转成 中文字符串

比如:
unsigned char buffer[1] = 0xd4;
unsigned char buffer[2] = 0xc1;

如何将 0xd4 与 0xc1 转成 汉字“粤” ,并用string形式

CMD控制台默认是gbk编码,而 汉字“粤”的GBK编码也刚好是0xD4C1,因此,只需要让string 的值为0xD4C1即可。

#include <string>
#include <iostream>
using namespace std;

int main()
{
    unsigned char buffer1 = 0xd4;
    unsigned char buffer2 = 0xc1;
    string s;
    s += buffer1;
    s += buffer2;
    cout << s << endl;
    return 0;
}

汉字字符编码请查看: 汉字字符集编码查询;中文字符集编码:GB2312、BIG5、GBK、GB18030、Unicode
控制台编码(修改)请查看:解决c++中cout输出中文乱码问题_天天进步一点点-CSDN博客_c++输出中文乱码