C语言中数组怎么把任意两个单字节的字符变成一个双字节的字符

2022-03-14 社会 288阅读
// 题主这个问题嘛,问的很有问题

// 计算机一般有两种文字储存方式,宽字节+多字节

// 宽字节:用2或4个字节表示一个字(每种类型固定字节长度)

// USC-2, USC-4

// 多字节:用1到4个字节表示一个字(每种字用的字节不一样)

// GBK, BIG5, UTF-8

两个单字节变为一个双字节,意味着这两个单字节其实是一个双字节能表达的字符的分别字节?

// 假设是这样的



比如“我”字,你得先查到内码为:CED2

从下面可以查....当然百度一下到处都是
http://www.mytju.com/classcode/tools/encode_gb2312.asp

// 然后发现,这个是多字节编码,所以不考虑大小端

unsigned char a[3];

a[0] = 0xCE; a[1] = 0xD2; a[3] = 0x0;

printf(a); 就可以了



查到“我”编码是0x6211

考虑到intel处理器都是小端(与我大摩托罗拉对着干)

unsigned char a[4];

a[0] = 0x11; a[1] = 0x62; a[2] = 0x0; a[3] = 0x0;

wprintf((wchar_t *)a); 就可以了
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com