IntelliJ IDEA的檔案編碼處理

2021-08-29 21:35:04 字數 1969 閱讀 9091

因為要寫這篇文章,所以查詢了一下些關於編碼的知識,不對之處希望能指出來 :)。編碼主要經歷三個階段:ascii、ansi和unicode。

ascii大家都知道,就是以乙個位元組的低7位表示字元,這樣可以表達128個字元,通常就是我們所說的英文本母和符號;

ansi標準利用兩個擴充套件ascii字元來表達非英文本元,這樣可以表達的擴充套件字元數就到達了14位,即16384個字元。針對ansi,每個國家(地區)有自己的編碼規範,對中文來說就是gb2312,gbk和gb18030,台灣的big5,日文的shift-jis等,這些都是對ansi的具體擴充套件。如果你編寫乙個文字檔案,指定為gbk,那麼你開啟該檔案的時候必須指明其正確的編碼方式,否則會出現亂碼。不同 ansi 編碼之間互不相容,當資訊在國際間交流時,無法將屬於兩種語言的文字,儲存在同一段 ansi 編碼的文字中,也就是gbk編碼的檔案中不可能出現日文,否則開啟該檔案時就會出亂碼。

unicode 使用兩個位元組對世界上幾乎所有的語言進行編碼(0x0000-0xffff),它可以表達的字元數量為16位,即65536個字元,每種語言的**段不同,兩個位元組所表達的字元是唯一的,所以不同語種可以共存於文字中。unicode只是指定了編碼,沒有指定傳輸方式( big endian)問題,所以派生了utf(unicode transformation format),所以utf-8和utf-16都是unicode的一種編碼方式。對於unicode檔案來說,通常檔案內容的頭兩個位元組來表明其是unicode,如ff fe 表示為utf-8編碼,其情況均表示為ansi,這也是為何有idea的「autodetect utf-encoded files「功能的原因。由於utf-8不需要處理big endian問題,因此utf-8是最常用的unicode編碼方式。

亂碼問題:由於unicode和ansi所處理的字元的**不一樣,而且各個國家對ansi碼的解釋也不一樣,所以unicode和ansi之間、不同國家的ansi之間的不正確使用就導致了亂碼,如開啟乙個位元組流,如果設定的解析編碼不正確,亂碼就出現啦,所以要搞清楚你使用的編碼方式,這樣就不會出現亂碼。

扯了這麼多,我們看一下idea提供哪些處理編碼的功能。idea中lossy encoding(中文不知道如何翻譯:易損的編碼?)究竟發揮怎麼樣的作用咧?lossy encoding可以把不應該出現在該檔案中的字元指出來,提示你進行修正。如在us-ascii編碼的檔案中,出現中文或日文可不可以的;同樣在gbk編碼的檔案中出現ansi日文或utf字元也是不可以的。

但是在實際的開中,有一些檔案是能描述自身編碼的,如xml和html。xml可以通過encoding來指定編碼方式,而html通過content-type方式來指定,如果開啟這些檔案,就會呼叫相應的編碼方式來處理。在開發中,我們通常會從一種編碼方式轉換到另一種編碼,在idea中,如果你將這些自身帶有編碼資訊的檔案的編碼宣告改變的話,對應的檔案編碼也會改變。如將乙個utf-8的xml檔案的encoding更改為gbk,那麼檔案的編碼也會自動進行轉換並進行儲存,同樣修改html的content-type或jsp的content-type都會引發檔案的編碼自動轉換,這樣的處理對編碼轉換非常有好處,在google上你可以搜尋到很多編碼轉換的工具,但這一切idea都在自動幫你搞定。如果你想快速檢視乙個檔案的編碼,最好安裝file info外掛程式,按下ctrl+f10馬上就可以了解檔案的編碼方式。

最後稍微聊一下專案的編碼,如果你的專案是國際化的話,最好選擇utf-8,因為可以融合多個語言,這也是為何很多論壇都採用utf-8編碼(不同語言的人都會發帖),而rails將utf-8設為預設。其他情況請選擇適當的ansi編碼,同時也要考慮和utf-8直接的轉換,如ajax等。在最新的idea 8.0 eap中,專案級別的編碼可以被指定,而且各個檔案可以指定相關的編碼,檔案編碼處理的功能更強。希望這些介紹能對檔案編碼了解和實際開發有一定的幫助。

新建工程時----在general中,把file encoding和properties files都設定成utf-8編碼。

頁面加上

idea會自動轉換成相應的編碼

IntelliJ IDEA的檔案編碼處理

因為要寫這篇文章,所以查詢了一下些關於編碼的知識,不對之處希望能指出來 編碼主要經歷三個階段 ascii ansi和unicode。ascii大家都知道,就是以乙個位元組的低7位表示字元,這樣可以表達128個字元,通常就是我們所說的英文本母和符號 ansi標準利用兩個擴充套件ascii字元來表達非英...

IntelliJ IDEA修改(檔案)編碼格式

本文介紹如何在intellij idea中修改檔案編碼,參考intellij idea 簡體中文專題教程,英文好的同學可以檢視英文官網文件 intellij idea可以在選單中的file settings editor file encoding下修改專案檔案的編碼 另外,單獨檔案的編碼也可以這樣...

IntelliJ IDEA中建立xml檔案

左上角輸入 template 2 在左側欄找到 file and code templates 3 中間選中 files 4 點選 號,新增模板 5 輸入模板名字 name mybatis cfg.xml name 可以自定義 6 字尾名 extension xml 7 在面板中間輸入內容 xml ...