3.2、輸出漢字亂碼問題解決_第1頁(yè)
3.2、輸出漢字亂碼問題解決_第2頁(yè)
3.2、輸出漢字亂碼問題解決_第3頁(yè)
3.2、輸出漢字亂碼問題解決_第4頁(yè)
3.2、輸出漢字亂碼問題解決_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、要解決這個(gè)問題,先要搞清楚有三個(gè)地方涉及到編碼問題。1.Code::Blocks 編輯器保存源文件用的編碼。默認(rèn)情況下,是保存為 windows 本地編碼的,也就是 WINDOWS-936 字符集,也就是 GBK 編碼。但是很神奇的是,GCC 編譯器默認(rèn)編譯的時(shí)候是按照 UTF-8的。你存成GBK,但是當(dāng)成 UTF-8,這還能編譯通過,這才有鬼了,所以這兩個(gè)地方編碼不好,編譯的時(shí)候報(bào)錯(cuò):error: converting to execution character set:Illegal byte sequence,你根本連通過編譯的可能性都沒有!其實(shí)要解決這個(gè)問題很簡(jiǎn)單,編寫 Code:B

2、locks 的人只需要在調(diào)用編譯器之前檢測(cè)一下源文件是什么編碼,然后就自動(dòng)讓編譯器用什么編碼進(jìn)行解釋,問題就解決了。只是很可惜,Code:Blocks 編寫的人可能還沒有這么做,或許是對(duì)本地化認(rèn)識(shí)不夠吧,也可能是覺得沒必要吧?(所以就給初學(xué)的人帶來問題了,所以就覺得易用性不如微軟了,免費(fèi)和商業(yè)的東西還是有差距的。)2GCC 編譯器編譯的時(shí)候?qū)斎氲脑次募忉層玫木幋a這個(gè)編譯器可以設(shè)置-finpharset=charset 來指定編譯器用什么編碼解釋輸入源文件。比如如果源文件的字符集是 GBk,那么就必須指定-finpharset=GBK,如果不指定,一律當(dāng)做 UTF-8 處理。除非你源文件真的

3、是 UTF-8,否則就會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤。3編譯好的執(zhí)行文件所用編碼如果你 1 和 2 兩個(gè)地方的編碼都能,那么編譯時(shí)不會(huì)報(bào)錯(cuò)了,但是編譯好了,運(yùn)行一下看看,在控制臺(tái)顯示的依然是亂碼!那是因?yàn)榭刂婆_(tái)顯示的時(shí)候缺省的是使用系統(tǒng)默認(rèn)的字符集,比如 windows 下用的是 GBk,但是默認(rèn)情況下,編譯之后的執(zhí)行文件時(shí)編譯成 UTF-8 的,所以又出現(xiàn)了不,亂碼由此而生!解決的方法和簡(jiǎn)單,就是給編譯器加上選項(xiàng):-fexec-charset=GBK,和windows 默認(rèn)的,就 OK 了。搞懂了亂碼產(chǎn)生的原因,那么不難得出結(jié)論,如何修改,你想修改成什么都OK,關(guān)鍵是要,并不是像網(wǎng)上一些人說的,修改成 GB

4、K 就 OK,其實(shí)你要修改成 UTF-8 都 OK,關(guān)鍵是。下面說說修改的地方。1修改源文件保存編碼在:settings-Editor-gernal settings看到右邊的Encoding group Box 了嗎?如下圖所示:Use encoding when opening files:這個(gè)表示打開文件用的格式,第一次保存文件的時(shí)候也會(huì)用這個(gè)格式。As default encoding:表示設(shè)置為文件缺省保存和打開編碼格式注意,要先設(shè)置好,然后保存文件,才有效。如果你已經(jīng)保存了文件,無論你怎么修改這個(gè)設(shè)置,也不會(huì)改變你文件的格式了。你的文件還是保持第一次保存的時(shí)候的格式。所以,如果遇到

5、無法生效,只能先設(shè)置好格式,再重新建文件了。2修改編譯器對(duì)源文件解釋編碼格式和生成執(zhí)行文件執(zhí)行時(shí)候采用的編碼格式是在 settings-compiler and debugger settings 里面,選擇對(duì)應(yīng)的 GCC 編譯器,如下圖所示:在 other options 里面加入:-finpharset=charset-fexec-charset=charset第一個(gè)參數(shù)表示編譯的時(shí)候輸入文件的編碼解釋格式,第二參數(shù)表示生成的執(zhí)行文件執(zhí)行的時(shí)候顯示用的編碼格式。這些參數(shù)如果和實(shí)際不吻合,必然產(chǎn)生亂碼。只要吻合,就不會(huì)亂碼了。由于源文件格式是 WINDOWS-936,但是這里設(shè)置成 UTF-8,所以編譯肯定報(bào)錯(cuò)!只需要修改成-finpharset=WINDOWS-936 或者 GBk,就編譯通過了。如果不設(shè)置 fexec-charset 默認(rèn)會(huì)認(rèn)為執(zhí)行環(huán)境是 UTF-8,而 windows 下并不是,所以 Linux 下沒問題,因?yàn)?Linux 就是 UTF-8 的,但是 windows 下必然出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論