![]() |
發布時間: 2025-1-11 22:20
正文摘要:如題 看圖 做stm32f103rc 驅動oled中文顯示,編碼明明選擇的時gb2312,主程序內調用顯示中文字符OLED_ShowChineseString(0, 0,"電流 00.0V",16, 1); 中文字符串編譯結果卻是 UTF-8編碼,而字庫內中文字 ... |
用notepad++試了不行,最后又換了一個模板,重建了工程,開始還行添加顯示驅動子程序后就中文不能轉碼了,也就是keil內修改編碼,程序內中文顯示無變化,選的GB2312編譯后還是UTF8 把子程序文件刪除,重新創建新的子程序,打開舊工程,拷貝代碼到新子程序文件。舊代碼能正常顯示的中文到新工程就全是亂碼,怎么轉換都是亂碼,但是重新輸入中文就正常了,能正常切換編碼格式。重新修改代碼內中文字符就可以正常編譯了,編譯后運行正常,。但是拷貝過來的代碼中文注釋就全是亂碼,改不過來。 總結是子程序代碼移植中,反復移植編譯,keil默認編譯使用UTF8編碼,發生了Bug。莫個子程序編碼錯誤,移植后雖然顯示正常,但其實用的是UTF8編碼,移植后與整體工程不符,造成工程其他代碼是GB2312,而OLED驅動是UTF8。就需要出錯的子文件刪除重建了。 |
用notepad++打開 可以轉換編碼 ![]() |
自己頂一下吧 又折騰幾個小時反復測試,使用江科大的工程模板做的工程都存在編碼錯誤,設置里面修改編碼格式程序內中文不會隨著改變,始終顯示中文。 又換了野火工程模板 隨著設置編碼格式修改,代碼中的中文也隨之改變正常或亂碼,使用ANSCI或GB2312都可以,推薦ANSCI。 以前一直用江科大的模板,習慣了比較方便,現在都要換模板,請教高手誰說一下不能切換編碼格式是怎么回事是模板缺少某些文件嗎,怎么修復。 |