找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1077|回復(fù): 4
收起左側(cè)

keil中文選擇GB2312 編譯結(jié)果還是UTF-8,怎么解決

[復(fù)制鏈接]
ID:309610 發(fā)表于 2025-1-11 22:20 | 顯示全部樓層 |閱讀模式
錯(cuò)誤.png

如題 看圖 做stm32f103rc 驅(qū)動(dòng)oled中文顯示,編碼明明選擇的時(shí)gb2312,主程序內(nèi)調(diào)用顯示中文字符OLED_ShowChineseString(0, 0,"電流 00.0V",16, 1);
中文字符串編譯結(jié)果卻是 UTF-8編碼,而字庫(kù)內(nèi)中文字庫(kù)索引表Chinese_SY內(nèi)中文確實(shí)gb2312編碼,試了很多方法不行。
也就是同樣設(shè)置 字庫(kù)編譯結(jié)果是gb2312碼, 主程序編譯結(jié)果是UTF-8.
字庫(kù)子程序從其他項(xiàng)目拷貝來(lái)的,同一個(gè)電腦在51平臺(tái)運(yùn)行正常。
  中文字符“電壓”在字庫(kù)子程序Chinese_SY編譯后為B5 E7 ,D1 B9  是gb2312,而主程序"電流 00.0V"編譯后代碼為 E7 94 B5,E6 B5 81是UTF-8編碼,后面
00.0V 編譯結(jié)果 20 30 30 2E 30 正確。
  試過更換編碼格式 編譯后再改回來(lái),從其他文件拷貝粘貼字符,都不行。
又測(cè)試一下 中文顯示 放在OLED.c           void disp_dy(void){
                                               OLED_ShowChineseString(0, 0,"電流 00.0V",16, 1);
                                            }

主程序調(diào)用disp_dy(); 編譯結(jié)果正常顯示正常
把子程序OLED.c   拷貝到其他項(xiàng)目,又不行編譯結(jié)果又是UTF——8格式,怎么改工程某個(gè)文件編碼格式.。keil 5.14版本 MDK-arm 5.34
回復(fù)

使用道具 舉報(bào)

ID:309610 發(fā)表于 2025-1-12 16:08 | 顯示全部樓層
自己頂一下吧
    又折騰幾個(gè)小時(shí)反復(fù)測(cè)試,使用江科大的工程模板做的工程都存在編碼錯(cuò)誤,設(shè)置里面修改編碼格式程序內(nèi)中文不會(huì)隨著改變,始終顯示中文。
   又換了野火工程模板 隨著設(shè)置編碼格式修改,代碼中的中文也隨之改變正;騺y碼,使用ANSCI或GB2312都可以,推薦ANSCI。
  以前一直用江科大的模板,習(xí)慣了比較方便,現(xiàn)在都要換模板,請(qǐng)教高手誰(shuí)說一下不能切換編碼格式是怎么回事是模板缺少某些文件嗎,怎么修復(fù)。  
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2025-1-13 15:27 | 顯示全部樓層
用notepad++打開
可以轉(zhuǎn)換編碼 2025-01-13_152641.png

回復(fù)

使用道具 舉報(bào)

ID:309610 發(fā)表于 2025-1-18 00:26 | 顯示全部樓層
   用notepad++試了不行,最后又換了一個(gè)模板,重建了工程,開始還行添加顯示驅(qū)動(dòng)子程序后就中文不能轉(zhuǎn)碼了,也就是keil內(nèi)修改編碼,程序內(nèi)中文顯示無(wú)變化,選的GB2312編譯后還是UTF8
    把子程序文件刪除,重新創(chuàng)建新的子程序,打開舊工程,拷貝代碼到新子程序文件。舊代碼能正常顯示的中文到新工程就全是亂碼,怎么轉(zhuǎn)換都是亂碼,但是重新輸入中文就正常了,能正常切換編碼格式。重新修改代碼內(nèi)中文字符就可以正常編譯了,編譯后運(yùn)行正常,。但是拷貝過來(lái)的代碼中文注釋就全是亂碼,改不過來(lái)。
   總結(jié)是子程序代碼移植中,反復(fù)移植編譯,keil默認(rèn)編譯使用UTF8編碼,發(fā)生了Bug。莫個(gè)子程序編碼錯(cuò)誤,移植后雖然顯示正常,但其實(shí)用的是UTF8編碼,移植后與整體工程不符,造成工程其他代碼是GB2312,而OLED驅(qū)動(dòng)是UTF8。就需要出錯(cuò)的子文件刪除重建了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表