本帖最后由 yl20084784 于 2016-5-22 18:10 编辑
今天调试了一天的一块晶联讯的一块12832屏幕出现了一个比较奇葩的现象。在这里求助大家帮忙分析一下;
我需要在屏幕上显示一段汉字
调用了个函数如下:
display_GB2312_string(2,60,"东京"); 结果显示不正常,
然后我通过查询“东京热”这三个字的机内码,然后弄了个数组
uchar string1[]={0xb6,0xab,0xbe,0xa9,0xc8,0xc8};//每个汉字对应两个uchar
在通过这种形式:
display_GB2312_string(2,3,string1);显示正常
然后各自猜想验证...点头绪都没有。
在主函数里面同时调用两种形式
display_GB2312_string(2,3,string1);
display_GB2312_string(2,60,"东京");
显示效果如下图:
然后通过MDK调试发现中文字符串“东京”被MDK转换成了如下的字符串
不科学啊,一个汉字应该是对应连个char的啊,怎么变成3个了?还完全牛头不对马嘴了?
这是怎么回事啊?
是MDK设置有问题?还是哪里有点问题啊?求助路过大神点拨~~~
MDK设置了GB2312编码方式(其他几种也测试了,不正常)
这个问题反映了MDK软件在设置编码方式的时候,对于已经编好的代码转换出了点问题。
所以解决办法是参考网上的以为网友的办法,把这个main.c文件用notpad++转换为GB2312在保存就OK了,中间如果还有问题,在设置MDK编码方式为GB2312,再来一道。
看来大家也不喜欢东京热啊,是不是太热了啊
一周热门 更多>