keil不僅有0xFD的漢字亂碼問(wèn)題
最近又用到了LCD12864液晶屏,而且是并口的,就從STC-ISP的范例程序中借鑒了一下,如下圖所示。

我們看到顯示漢字是正常的。

在用VS?Code編輯的時(shí)候,由于注釋中的漢字出現(xiàn)亂碼,便把編碼方式由GB2312改為UTF-8,再經(jīng)Keil編譯之后,下載到STC15W4K48S4中,顯示就成了這樣子:

以為是Keil原來(lái)的0xFD問(wèn)題,在漢字后面都加了\xfd,還是不行,最后才發(fā)現(xiàn)是把C源文件的編碼方式由GB2312改為UTF-8的原因,漢字的這兩種編碼方式是不同的,而12864漢字庫(kù)用的是GB2312的編碼。
把C源文件的編碼由UTF-8改為GB2312之后,大部分漢字的顯示正常了,但是含0xFD的漢字,問(wèn)題依然存在,不過(guò)只要在它后面加上“\xfd",就可以正常顯示了。比如過(guò)字,我們?cè)诰W(wǎng)上查它的編碼如下:

所以在程序中需要這樣處理:

下面是正常顯示的畫面。

編譯器已經(jīng)是9.60了,看來(lái)Keil是不打算解決這個(gè)問(wèn)題了。

花了不少時(shí)間才解決問(wèn)題,所以作此文便于以后查閱,也希望對(duì)遇到同樣問(wèn)題的朋友們有所幫助。
標(biāo)簽: