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