[STM32F1] GB2312字库,判断中文还是英文字符问题

[复制链接]
3503|6
 楼主| luodewei 发表于 2015-1-27 10:03 | 显示全部楼层 |阅读模式
本帖最后由 luodewei 于 2015-1-27 12:37 编辑

我的语句如下,但实际调试中发现一部分中文也识别为英文了,难道不是大于0x80的都是中文字符吗?还是字库问题?
if ( CmpBuf[a] & 0x80)  
{
linetext +=8;    //16号字,中文
}
else
{
linetext +=16;   //16号字,英文
}


搞定了,只需要比较第一位即可,高位大于0x80,低位则任意。
改正后如下:
if ( CmpBuf[a] & 0x80)  
{
linetext +=16;    //16号字,中文
a++;
}
else
{
linetext +=8;   //16号字,英文
}
liuwanlihao1 发表于 2015-1-27 10:26 | 显示全部楼层
大于0x80的都是中文啊,没错啊......
戈卫东 发表于 2015-1-27 10:28 | 显示全部楼层
第一个字节大于0X80,第二个要跳过?
huzi2099 发表于 2015-1-27 11:50 | 显示全部楼层
汉字是两字节,如果GB字库每字两字节,英文用0填充
mmuuss586 发表于 2015-1-27 12:14 | 显示全部楼层

看下字库的代码是不是都大于0X80,是的话,你判断出错,就是你程序问题了;
叶伤 发表于 2015-1-30 00:52 来自手机 | 显示全部楼层
本帖最后由 叶伤 于 2015-1-30 00:55 编辑

一个英文加16,另一个英文加8。玩数字游戏?
zh113214 发表于 2015-1-30 11:07 | 显示全部楼层
进来看看,顶一个!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

40

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部