原文鏈接:https://blog.csdn.net/yanyujingzhe/article/details/80437078
(一)“字節”的定義
字節(Byte)是一種計量單位,表示數據量多少,它是計算機信息技術用於計量存儲容量的一種計量單位。
(二)“字符”的定義
字符是指計算機中使用的文字和符號,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
(三)“字節”與“字符”
它們完全不是一個位面的概念,所以兩者之間沒有“區別”這個說法。不同編碼里,字符和字節的對應關系不同:
①ASCII碼中,一個英文字母(不分大小寫)占一個字節的空間,一個中文漢字占兩個字節的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算為十進制。最小值0,最大值255。
②UTF-8編碼中,一個英文字符等於一個字節,一個中文(含繁體)等於三個字節。
③Unicode編碼中,一個英文等於兩個字節,一個中文(含繁體)等於兩個字節。
符號:英文標點占一個字節,中文標點占兩個字節。舉例:英文句號“.”占1個字節的大小,中文句號“。”占2個字節的大小。
④UTF-16編碼中,一個英文字母字符或一個漢字字符存儲都需要2個字節(Unicode擴展區的一些漢字存儲需要4個字節)。
⑤UTF-32編碼中,世界上任何字符的存儲都需要4個字節。
針對UTF-8,中國的漢字多達10多萬,常用的漢字3500左右[08年統計],如果用3個字節來表示,一共只有2^16(65535)種可能,不足以表示10多萬的漢字。所以中日韓的超大字符集是采用的4個字節來表示的,多達6萬多個。但是平時使用超大字符集的概率0.01%都不到。所以我們一般認為日常的中文在UTF-8中占三個字節,但實際上也有4個字節的.