STM32
直播中

李秀容

7年用户 204经验值
私信 关注
[问答]

请问汉字显示实验的问题是怎么回事

//将pbuf内的unicode码转为gbk码.//pbuf:unicode码存储区,同时也是gbk码的输出区.必须小于80个字节.//代码转换unit code-> GBK//发烧友@HYW//CHECK:09/10/30void UniToGB(u8 *pbuf){     unsigned int  code;unsigned char i,m=0; for(i=0;i<80;i++)//最长80个字符{  code= pbuf[i*2+1]*256+pbuf[i*2]; if((code==0)||(code==0xffff))break;if((code&0xff00)==0)//字母{if((code>=0x20)&&(code<=0x7e)){pbuf[m++]=(unsigned char)code;              }else pbuf[m++]='?';//无法识别的用?代替 continue;}if(code>=0X4E00)//是汉字{       code=UnicodeToGBK(code);//把unicode转换为gb2312    pbuf[m++]=code>>8; pbuf[m++]=(u8)code; }else pbuf[m++]='?';//无法识别的用?代替  }    pbuf[m]='';//添加结束符号        }
其中:code= pbuf[i*2+1]*256+pbuf[i*2]; if((code==0)||(code==0xffff))break;
请问这两语句代表什么意思?

回帖(1)

蔡明灼

2020-7-14 16:13:49
就是把u8的两个数据组合成u16.
并且这个u16不能为0,或者0XFFFF.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分