初级会员

- 积分
- 195
- 金钱
- 195
- 注册时间
- 2012-10-24
- 在线时间
- 0 小时
|
看了原子的显示汉字实验,有点地方不明白。
SD卡把GBK字库和Unicode转GBK文件都转到SPIflash里面去了。存储的方式是GBK码。
而编程时,数组存储中文字符串 例如 u8 temp[]={"你好呀"}; 这里面的 你好吗 三个字是以什么码存储的呢?
对于 void Show_Font(u8 x,u8 y,u8 *font,u8 size,u8 mode) 这个函数,是显示一个汉字的。
这个函数的参数 *font 就是汉字的数据,可是这个参数表示的是GBK码的,应该不能把 temp 这个数组直接套进去用吧。事实上我也试了,显示出乱码。这样的话,怎么才能用 Show_Font 这个函数来显示 temp数组里面的汉字呢?不可能一遍遍的百度一个汉字的GBK内码,然后在写到一个数组中,再套用Show_Font函数吧?
而原子程序里面又有个Unicode码转GBK码的程序 void UniToGB(u8 *pbuf)。temp数组里面的 中文字符串 是不是就是Unicode码呢?
如果是Unicode码的话,那就是要先调用 void UniToGB(temp) 这个函数,先把temp中的中文转换成GBK码
然后再调用 Show_Font(0,0,temp,16,0) 这个函数,在 0,0坐标上显示中文吗?
可是我这么实用,同样也显示异常。到底应该怎么,才能显示自己想显示的中文呢?
感觉纠结我的地方就是各种码之间的转换情况,还有 编程时,数组中的 中文字符串 是以什么码的形式存储的,因为知道是什么码的形式存储的之后,就可以通过这个码转换GBK码,来使用 Show_Font这个函数了。
自我感觉temp里面的中文是ascii码存储的,不知道对不对,唉......
说的有点混乱啊,希望各位能花点时间看看,帮我解决下这个问题。头都弄晕了 |
|