欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決codeblocks編碼問題

嵌入式單片機 ? 來源:未知 ? 作者:胡薇 ? 2018-11-15 14:18 ? 次閱讀

要解決這個問題,先要搞清楚有三個地方涉及到編碼問題。

1.1CodeBlocks編輯器保存源文件用的編碼。

默認情況下,是保存為windows本地編碼的,也就是WINDOWS-936字符集,也就是GBK編碼。

但是很神奇的是,GCC編譯器默認編譯的時候是按照UTF-8解析的。你存成GBK,但是當成UTF-8解析,這還能編譯通過,這才有鬼了,所以這兩個地方編碼不統(tǒng)一好,編譯的時候報錯:error: converting to execution character set: Illegal byte sequence,你根本連通過編譯的可能性都沒有!

其實要解決這個問題很簡單,編寫Code::Blocks的人只需要在調(diào)用編譯器之前檢測一下源文件是什么編碼,然后就自動讓編譯器用什么編碼進行解釋,問題就解決了。只是很可惜,Code::Blocks編寫的人可能還沒有這么做,或許是對本地化認識不夠吧,也可能是覺得沒必要吧?(所以就給初學的人帶來問題了,所以就覺得易用性不如微軟了,免費和商業(yè)的東西還是有差距的)

1.2GCC編譯器編譯的時候?qū)斎氲脑次募忉層玫木幋a

這個編譯器可以設置-finput-charset=charset來指定編譯器用什么編碼解釋輸入源文件。比如如果源文件的字符集是GBk,那么就必須指定-finput-charset=GBK,如果不指定,一律當做UTF-8處理。

除非你源文件真的是UTF-8,否則就會出現(xiàn)轉(zhuǎn)換錯誤。

1.3編譯好的執(zhí)行文件所用編碼

如果你1和2兩個地方的編碼都能統(tǒng)一,那么編譯時不會報錯了,但是編譯好了,運行一下看看,在控制臺顯示的依然是亂碼!

那是因為控制臺顯示的時候缺省的是使用系統(tǒng)默認的字符集,比如windows下用的是GBk,但是默認情況下,編譯之后的執(zhí)行文件時編譯成UTF-8的,所以又出現(xiàn)了不統(tǒng)一,亂碼由此而生!

解決的方法和簡單,就是給編譯器加上選項:-fexec-charset=GBK,和windows默認的統(tǒng)一,就OK了。

搞懂了亂碼產(chǎn)生的原因,那么不難得出結(jié)論,如何修改,你想修改成什么都OK,關(guān)鍵是要統(tǒng)一,并不是像網(wǎng)上一些人說的,修改成GBK就OK,其實你要修改成UTF-8都OK,關(guān)鍵是統(tǒng)一。

1.4修改的地方。

1.修改源文件保存編碼在:settings->Editor->gernal settings找到Encoding group Box

Use encoding when opening files:這個表示打開文件用的格式,第一次保存文件的時候也會用這個格式。

As default encoding:表示設置為文件缺省保存和打開編碼格式

注意,要先設置好,然后保存文件,才有效。如果你已經(jīng)保存了文件,無論你怎么修改這個設置,也不會改變你文件的格式了。你的文件還是保持第一次保存的時候的格式。所以,如果遇到無法生效,只能先設置好格式,再重新建文件了。

2.修改編譯器對源文件解釋編碼格式和生成執(zhí)行文件執(zhí)行時候采用的編碼格式是在settings->compiler and debugger settings里面,選擇對應的GCC編譯器

在other options里面加入:

-finput-charset=charset

-fexec-charset=charset

第一個參數(shù)表示編譯的時候輸入文件的編碼解釋格式,第二參數(shù)表示生成的執(zhí)行文件執(zhí)行的時候顯示用的編碼格式。這些參數(shù)如果和實際不吻合,必然產(chǎn)生亂碼。只要吻合,就不會亂碼了。

由于我的源文件格式是WINDOWS-936,但是這里設置成UTF-8,所以編譯肯定報錯!

只需要修改成-finput-charset=WINDOWS-936或者GBk,就編譯通過了。

如果不設置fexec-charset默認會認為執(zhí)行環(huán)境是UTF-8,而windows下并不是,所以Linux下沒問題,因為linux就是UTF-8的,但是windows下必然出現(xiàn)亂碼。所以設置成GBk,就統(tǒng)一了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    959

    瀏覽量

    54971
  • CodeBlocks
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    9524

原文標題:codeblocks編碼問題

文章出處:【微信號:qrsworld,微信公眾號:嵌入式單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    codeblocks經(jīng)典

    codeblocks經(jīng)典
    發(fā)表于 06-15 13:08

    神奇的codeblocks

    各位大神麻煩看看這是怎么回事,第二次計算的代碼明顯是錯的,應該生成隨機數(shù),但無論我運行多少次總是正確的結(jié)果,這codeblocks難道還能自動改錯嗎?#include int main(void
    發(fā)表于 02-24 21:00

    在linux下安裝codeblocks

    在linux下安裝codeblocks后,寫一段程序,編譯都沒有問題,到了運行階段就出錯,起初上網(wǎng)查沒找到解決方案,后來看到百度文庫里的一篇文章才解決了,原來是沒有配置運行控制臺,
    發(fā)表于 07-24 08:18

    Codeblocks編程報錯是什么原因?qū)е碌模?/a>

    今天用Codeblocks 編程,出現(xiàn)一個錯誤,之前沒有見過,求大神指點,是什么原因?qū)е碌摹?c:winavrbin..libgccavr4.3.3........avrlibavr5crtm644pa.o:(.init9+0x0)||undefined reference to `main\'|
    發(fā)表于 10-31 07:43

    codeblocks 51單片機學習(一)

    codeblocks 51單片機學習(一)原先是在keil下進行51單片機編程的,那個時候跟著視頻學,發(fā)現(xiàn)沒學會什么,后來因某些原因重裝了一下電腦,又準備繼續(xù)學習51單片機,決定換一個環(huán)境,也就
    發(fā)表于 11-11 18:21 ?8次下載
    <b class='flag-5'>codeblocks</b> 51單片機學習(一)

    codeblocks環(huán)境下SDCC編譯單片機程序

    1.分別下載安裝Codeblocks + SDCC2. 在codeblocks中進菜單設置 settings/complier選擇 Small Device C Complier,Set
    發(fā)表于 11-24 18:06 ?14次下載
    <b class='flag-5'>codeblocks</b>環(huán)境下SDCC編譯單片機程序

    怎樣在codeblocks上編寫程序

    CodeBlocks上編寫程序是一項相對簡單而又重要的任務。CodeBlocks是一個廣泛使用的集成開發(fā)環(huán)境(IDE),它能夠幫助程序員編寫、編譯和運行他們的代碼。在本篇文章中,我們將詳細介紹
    的頭像 發(fā)表于 11-26 09:26 ?1750次閱讀

    codeblocks簡單的加減法編程

    CodeBlocks是一種常見的集成開發(fā)環(huán)境(IDE),用于編寫、運行和調(diào)試各種編程語言的程序。在本文中,我們將探索如何使用CodeBlocks進行加減法編程。我們將詳細介紹CodeBlocks
    的頭像 發(fā)表于 11-26 09:27 ?1262次閱讀

    codeblocks如何恢復默認布局

    CodeBlocks 是一款流行的開源集成開發(fā)環(huán)境(IDE),適用于多種編程語言,如 C、C++、Fortran 等。在 CodeBlocks 中,您可以自定義和修改窗口布局,以滿足個人編程需求
    的頭像 發(fā)表于 11-26 09:35 ?7924次閱讀

    codeblocks環(huán)境錯誤解決辦法

    CodeBlocks是一款常用的集成開發(fā)環(huán)境,用于編寫、編譯和調(diào)試C、C++等程序。然而,有時在使用CodeBlocks時可能會遇到一些錯誤或問題。本文將為你提供一些常見CodeBlocks環(huán)境錯誤
    的頭像 發(fā)表于 11-26 09:37 ?7499次閱讀

    CodeBlocks保存的項目在哪找

    CodeBlocks是一個集成開發(fā)環(huán)境 (IDE),主要用于C和C++程序開發(fā)。它提供了一種方便的方式來編寫、調(diào)試和構(gòu)建代碼。 首先,我們需要知道CodeBlocks的項目文件實際上是由多個文件組成
    的頭像 發(fā)表于 11-26 09:40 ?2883次閱讀

    CodeBlocks屬于什么軟件

    CodeBlocks是一款集成開發(fā)環(huán)境(Integrated Development Environment,簡稱IDE),專門用于編寫、編輯、編譯和調(diào)試程序的軟件。它提供了一系列的工具和功能,方便
    的頭像 發(fā)表于 11-26 09:53 ?4504次閱讀

    codeblocks工具欄恢復

    CodeBlocks是一種開發(fā)環(huán)境,廣泛用于編寫和調(diào)試各種編程語言的源代碼。它提供了用戶友好的界面,以及各種工具和功能,方便程序員進行開發(fā)工作。而恢復CodeBlocks工具欄的功能也是程序員在
    的頭像 發(fā)表于 11-26 09:57 ?5545次閱讀

    codeblocks怎么創(chuàng)建c文件

    CodeBlocks 中,你可以按照以下步驟創(chuàng)建一個新的 C 文件: 步驟 1: 打開 CodeBlocks 首先,你需要打開 CodeBlocks IDE。你可以在開始菜單或快捷方式上找到它
    的頭像 發(fā)表于 11-26 10:21 ?4964次閱讀

    codeblocks可以做什么東西?

    Codeblocks是一個開源的集成開發(fā)環(huán)境(IDE),用于編寫、編譯和調(diào)試各種編程語言的程序。它是一個跨平臺的開發(fā)工具,支持多種操作系統(tǒng),包括Windows、Mac OS和Linux
    的頭像 發(fā)表于 11-26 10:23 ?2078次閱讀