关于汉字编码的问题

2019-10-15 23:29发布

原子老师,我在学习汉字显示实验,有个问题搞不太明白,主程序中调用显示字符串的函数 Show_Str(60,50,200,16,"战舰  STM32 开发板",16,0); ,其中的汉字“战舰”,“开发板”,编译完了就是直接以GBK码存储的吗?因为我在text.c函数里看了半天都是直接用*str去调用根据GBK码找到相应的点阵字库的函数Get_HzMat,然后显示的。不知道您懂我的意思没有。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
ofourme
1楼-- · 2019-10-16 00:08
楼主真逗,都回答你是了,你还在纠结这个问题。你能看懂源文件,你不也从源文件推理出你的答案了吗?
其实这个问题跟编译器有关,跟源文件保存的格式也有关系,但是由于大陆PC上文本文件的保存格式为GBK,所以一般编译器编译出的代码里面,汉字也是已GBK保存的。所以这些代码在台湾香港的话运行结果我估计是会显示出错的,因为保存的不是GBK,但程序假设保存的是GBK而去寻找相应的字库。所以如果源文件以其他格式保存的话,这个就要看编译器的心情了,但是不管怎么样,总是要保存成一种格式的,不是GBK,也是其他的utf8,utf16之类的,不会是保存成位图文件。
ofourme
2楼-- · 2019-10-16 02:12
是的,有啥问题?
anazel
3楼-- · 2019-10-16 03:13
ofourme 发表于 2016-2-2 13:23
是的,有啥问题?

多谢回复,因为我没找到怎么把“战舰”“开发板”等汉字转换成GBK码的程序,所以就想是不是程序编译后就直接把这些汉字转成GBK码了。
迷恋烟花的瞬间
4楼-- · 2019-10-16 08:43
 精彩回答 2  元偷偷看……
anazel
5楼-- · 2019-10-16 14:10
迷恋烟花的瞬间 发表于 2016-2-2 23:47
Show_Str(u16 x,u16 y,u16 width,u16 height,u8*str,u8 size,u8 mode)这个函数就是根据汉字内码查找存储在f ...

多谢回复,程序都看了,这个函数确实是根据汉字内码查找Flash里面的汉字字库数据的,我的意思是引用这个函数Show_Str(60,50,200,16,"战舰  STM32 开发板",16,0); 里面的汉字“战舰”“开发板”,是不是编译后直接就是GBK编码了?
anazel
6楼-- · 2019-10-16 14:46
本帖最后由 anazel 于 2016-2-4 16:31 编辑

自己顶一下,原子老师的程序中没有判断汉字是哪一种编码的函数,好像直接判定是GBK编码,然后按照GBK编码找字库数据。

一周热门 更多>