日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

中文只占一个字符_一文搞懂字符和字节的含义

發布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中文只占一个字符_一文搞懂字符和字节的含义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

我們在數據庫建表時,經常會困擾某個字段應該選擇什么數據類型,以及填寫什么長度。選擇數據類型方面一般沒什么大問題,但是在填寫對應的長度的時候,很多人就會困擾,對應長度填寫的數字到底是什么含義,以及會影響到哪些東西。筆者在翻閱網上的相關文章時,發現一大半文章寫的都是錯的,主要的問題在于搞混了“字符”和“字節”這兩者的含義,甚至有的人覺得這就是一回事。本文首先先來講解“字符”和“字節”這兩者的含義,然后在下一篇文章介紹MySQL的數據類型中長度的含義。

字符

以下是百科對字符的定義:

字符指類字形單位或符號,包括字母、數字、運算符號、標點符號和其他符號,以及一些功能性符號。

為了方便理解,你可以將字符簡單地理解為你可以用輸入法單獨打出的任何單個的內容。對于中文和英文而言,以下內容分別都是1個字符:

(1)1個中文字,例如“是”

(2)1個英文字母,例如“T”

(3)1個中文標點符號,例如“。”

(4)1個英文標點符號,例如“.”

所謂的“字符串”就是由以上說的一個個字符組成的,字符串就是由一個個字符拼接而成的列表,以下是Javascript代碼演示:

const

在MySQL中,你可以使用 CHAR_LENGTH() 函數,查看指定字符串的字符數。例如:

SELECT

字節

字符就介紹到這里,接下去說字節。百科給的定義是:

字節(Byte)是計算機信息技術用于計量存儲容量的一種計量單位。

如果你只是在紙上寫字,那么就用不到字節,但是如果你要把字存入電腦,就需要占用一定的磁盤空間。我們知道,電腦只能用高電位、低電位的形式存儲數據,抽象出來,那就是電腦存數據最終只能用二進制的形式,也就是用0和1表示,無論任何數據,最終存儲的時候都是一段包含多個0和1的串,例如“00110101”,這里的每一個0或1被稱為1位。“位”就是最小的存儲單位,然后我們把8位稱為1個字節,也就是1個字節等于8位。這個概念類似于“1公里=1000米”,本質上是一回事,只是使用不同級別的單位而已。由于二進制實在太長,不方便展示,所以一般將1個字節(8位)的二進制轉換成十六進制進行展示,例如將11010011轉換成十六進制就是D3,這就是一個字節。

你沒有辦法直接在電腦里面存入字符,例如你沒有辦法將“你好世界”這四個字進行存儲,現行的方案是將字符編碼成0和1數字串的形式,兩者建立映射關系。例如你可以用“1”表示“你”,用“10”表示“好”,用“101”表示“世”,用“111”表示“界”。反過來講,如果你發現磁盤某一段地方存了“101”,那你就知道這里代表著“世”這個中文字。

當然以上的這個方案只是一套勉強行得通的方案,這種方案很多,我們把這種方案叫做“字符集”。我們在使用MySQL時,最常用的字符集就是 UTF-8 。這個字符集和上面說的這個方案沒有本質區別,只是建立映射關系不同而已。

我們可以看下字符“你”在UTF-8字符集下的表示方式,在MySQL中你可以直接使用 HEX() 函數來進行轉換。

SELECT HEX('你') -- E4BDA0

可以看出,使用UTF-8字符集,字符“你”需要使用3個字節來進行存儲(分別是E4,BD,A0),實際存儲的二進制是

111001001011110110100000

再次說明,E4BDA0 只是 111001001011110110100000 的簡寫形式,兩者本質上是一回事。

我們繼續看一下,存儲一個英文字符需要占用多少字節。

SELECT HEX('Z') -- 5A

可以看到,存儲英文字符“Z”只需要一個字節。

在MySQL中,你可以直接使用 LENGTH() 函數來查看指定字符串占用的空間(字節數)。

SELECT LENGTH('你') -- 3 SELECT LENGTH('Z') -- 1 SELECT LENGTH('A啊a1') -- 6

你可以直接記住結論:在UTF-8字符集下,一個中文字符占用3個字節,一個英文字符占用1個字節。如果要計算字符串占用的字節數,只需要按照這個方式想加即可。

更容易理解的例子

如果通過以上的講解還不能理解字符和字節的關系,我們再來講一個更容易理解的例子。

比如某種飲料有大瓶3升的和小瓶1升的,但是無論“大瓶”的還是“小瓶”的,我們都稱為“1瓶”。如果你將飲料導入飲料桶中,將大瓶倒入的時候要占用3升的空間,倒小瓶的時候,只需要占1升的空間。

上面例子說的“1瓶”飲料,對應1個字符,這是一個抽象概念,人為定義的。但是1個字符占用的空間各有不同,1個中文字符占用3個字節,1個英文字符占用1個字節,對應以上大瓶和小瓶的飲料倒入飲料桶占用的空間。

通過本文的講解,你應該已經理解了字符和字節的含義,下一篇文章我們講解MySQL的數據類型中長度的含義。

總結

以上是生活随笔為你收集整理的中文只占一个字符_一文搞懂字符和字节的含义的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。