请问STemWin 显示汉字,一定要更改keil的编码方式为UTF-8吗?

2019-12-10 18:20发布

Font 用FontCvtST.exe按如下步骤生成C文件字库
1     新建.txt文件,输入汉字.  编码格式改为unicode.
2     打开FontCvtST.exe选择字体
3     把所有字体取消选择。
4     FontCvtST.exe读入.txt文件.
5    另存为.c文件。
6    修改.c文件编码格式为UTF-8。

      简单程序测试:

        GUI_UC_SetEncodeUTF8();
        GUI_SetFont(&GUI_Fontsong33);
        GUI_DispStringAt("在指定位置显示字符串",10,150);
        GUI_SetFont(&GUI_Font32_ASCII); //设置字体
        GUI_DispString("25"); //在指定位置显示字符串

测试不能正常显示中文, 将编译器(如keil)的默认编码方式,改为UTF-8就可以显示中文了.
但是所有文件的注释全部变为乱码了.   

请问有没有什么方法可以不用改keil的默认编码方式,而正常显示汉字? 因为需要的汉字不多希望直接放在.c文件中.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
25条回答
takashiki
2019-12-11 18:49
我没用过STemWin,但是根据以前使用uc/GUI的经验,字符集的编码不是制约乱码的必然因素。必然因素是你要求的编码和实际的编码必须一致。
你代码第一行就要求UTF8了,Keil C中还用ANSI显然是不行的。同样,你在代码中要求ANSI而在Keil C却用UTF8也是不行的。
当然,这是基于以前的uc/GUI得出的结论,可能后面版本改了也说不定。那时还不支持UTF8呢,但支持UTF16。

一周热门 更多>