UTF-8与UTF-8 BOM
在我們通常使用的windows系統中,我發現了一個有趣的現象。我新建一個空的文本文檔,點擊文件-另存為-編碼選擇UTF-8,然后保存。此時這個文件明明是空的,卻占了3字節大小。原因在于:此時保存的編碼方式自動會變為UTF-8 BOM
一、一個漢字在不同的編碼方式中占多少字節?
1.在UTF-8中,一個漢字占3個字節(一個字符占一個字節)
2.在ASCII碼中,一個漢字占2個字節(一個字符占一個字節)
3.在Unicode編碼中,一個漢字占2個字節(一個字符同樣占兩個字節,所以JAVA中char a = '中';是可以的)
二、UTF-8與UTF-8 BOM
BOM即byte order mark,具體含義可百度百科或維基百科,UTF-8文件中放置BOM主要是微軟的習慣,但是放在別的系統上會出現問題。
不含BOM的UTF-8才是標準形式,UTF-8不需要BOM
帶BOM的UTF-8文件的開頭會有U+FEFF,所以我新建的空文件會有3字節的大小。
三、創建UTF-8(而非UTF-8 BOM)文件的方法
在發現文件另存為UTF-8缺得到UTF-8 BOM文件后,我們怎樣才能得到UTF-8呢?
法1.先另存為UTF-8保存,再使用notepad++打開,把里面的編碼設置為無BOM的UTF-8然后保存。(此方法治標不治本,因為當你再次在里面寫漢字時,文件會自動變成UTF-8 BOM)
法2.用JAVA代碼
如圖,可以很輕松的創建UTF-8文件,且可以隨便寫漢字,文件字節數=漢字數*3
---------------------
作者:LegendaryHsl
來源:CSDN
原文:https://blog.csdn.net/legendaryhsl/article/details/78794121
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的UTF-8与UTF-8 BOM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: logging.basicConfig函
- 下一篇: Pytorch学习记录-torchtex