这里写目录标题
一、宽字符和多字节字符的本质
在windows系统设置了utf8时,char使用的是utf8字符集,而当未设置时,char使用了gbk字符集。而下面char是使用了gbk字符集。
char ch[] = “我”;
wchar_t wch[] = L"我";。
- 多字节字符就是gbk字符
- 宽字节字符是Unicode字符
- 备注:我们知道gbk是多字节字符,至于为何转换成宽字符,就是Unicode编码,可能是默认的吧。
二、汉字我的宽字符码和多字节码分别是多少
- gbk:GBK 编码、汉字编码之GBK编码(附完整码表)
- 汉字“我”:CED2是十六进制。对应的十进制就是52946.
-
Unicode: https://unicode-table.com/cn/
- 汉字“我”:6211是十六进制。对应的十进制就是25105.
三、demo
#include
#include
#include
#define BUFFER_SIZE 50
using namespace std;
int main()
{
setlocale(LC_ALL, "chs");
char mbyte[50];
wchar_t * wbyte =NULL;
strcpy(mbyte, "我");
size_t mlen = strlen(mbyte);
int dSize = mbstowcs(wbyte, mbyte, 0) + 1;
wbyte = new wchar_t[dSize];
wmemset(wbyte, 0, dSize);
int len = mbstowcs(wbyte, mbyte, mlen);
cout << &mbyte< 00F3F984
00F3F978
我
我
备注:00F3F978为指针地址,应该查看指针指向的地址。如下图所示值为0x013107E8。地址0x013107E8中存的值为6211(如下图)
- 查看汉字“我”的gbk编码值为CED2(十六进制)、Unicode的编码值6211(十六进制)
https://blog.csdn.net/u010025662/article/details/54933530
---------------------
作者:junxuezheng
来源:CSDN
原文:https://blog.csdn.net/junxuezheng/article/details/125105975
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件