⑴ mysql資料庫一個漢字到底占幾個位元組
一個漢字佔多少長度與編碼有關:
若採用UTF-8編碼,則一個漢字=3個位元組。
若採用GBK編碼,則一個漢字=2個位元組。
項目中oracle10g資料庫表欄位為varchar(n)類型,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因茄凳為對於漢字不同的字元集,在資料庫佔用的位元組是不一樣的。
比如varchar(10)類型的欄位,UTF-8的漢字,只能存3個,gbk字元集的漢字卻能存5個。所以在程序中根據表欄位varchar的大小,保存或更新時作出必要的校驗否則後台會報錯。
對於一個網站、論壇來說,如果英文字元較多,則建議使用UTF-8節省空間。不過現在很多論壇的插件一般只支持GBK。
GB2312是GBK的子集,GBK是GB18030的子集
GBK是包括中日韓字元的大字元集合
(1)一個字在數據區中佔多少擴展閱讀
字元最終是以二進制形式存儲在磁碟的,這也是為什麼要有字元編碼的原因,因為計算機最終都要以二進制形式存儲,那麼編碼規則就是用什麼樣的二進制來代表這個字元。
例如,ASCII碼表中,01000011這個二進制對應的十進制是67,它拿瞎代表的就是英語字母C。准確概述來說,字元編碼方式是用一個或多個位元組的二進制形式表示字元集中的一個字元。
每種字元顫敏旅集都有自己特有的編碼方式,因此同一個字元,在不同字元集的編碼方式下,可能會產生不同的二進制形式。
另外,字元集合只是指定了一個集合中有哪些字元,而字元編碼,是為這個集合中所有字元定義相關編號,而字元集(注意與字元集合的區別)是字元和集合與編碼規則的混合體,這也是有時候編碼方案代表字元集的原因。
⑵ 一個字佔多大內存
一個漢字佔2個字元,標點佔1個字元。
在計算機和電信技術枯氏含中,一個字元是一個單位的字形、類字形單位或符號的基本信息。
字元是指計算機中使用的字母、數字、字和符號,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。在
ASCII
編碼中,一個英文字母字元存儲需要1個位元組。在
GB
2312
編碼或
GBK
編碼中,一個漢字字元存儲需要2個位元組。在UTF-8編碼中,一個英文字核培母字元存儲需要1個位元組,一個漢字字元儲存需要3到4個位元組。在UTF-16編碼中,一個英文字母字元或一沒笑個漢字字元存儲都需要2個位元組(Unicode擴展區的一些漢字存儲需要4個位元組)。在UTF-32編碼中,世界上任何字元的存儲都需要4個位元組。
⑶ 資料庫中一個漢字占幾個字元
資料庫中一個漢字佔用兩個字元,英文和數字佔用一個字元。
望採納
⑷ 資料庫中一個漢字占幾個字元
如果你說的「字元」就是指 Java 中的 char,那好,那它就是 16 位,2 位元組。
如果你說的「字元」是指我們用眼睛看到的那些「抽象的字元」,那麼,談論它占幾個位元組是沒有意義的。具體嫌知地講,脫離具體的編碼談某個字元占幾個位元組是沒有意義的。
就好比有一個抽象的整數「42」,你說它占幾個位元組?這得具體看你是用 byte,short,int,還是 long 來存它。
用 byte 存就佔一位元組,用 short 存就占兩位元組,int 通常是四位元組,long 通常八位元組。
當然,如果你用 byte,受限於它有限的位數,有些數它是存不了的,比如 256 就無法放在一個 byte 里了。
字元是同樣的道理,如果你想談「占幾個位元組」,就要先把編碼說清楚。同一個字桐斗符在不同的編碼下可能占不同的位元組。
就以你舉的「字」字為例,「字」在 GBK 編碼下占 2 位元組,在 UTF-16 編碼下也占 2 位元組,在 UTF-8 編碼下占 3 位元組,在 UTF-32 編碼下占 4 位元組。不同的字元在同一個編碼下也可能占不同的位元組。
「字」在 UTF-8 編碼下佔3位元組,而「A」在 UTF-8 編碼下占 1 位元組。(因為 UTF-8 是變長編碼),而 Java 中的 char 本質上是 UTF-16 編碼。而 UTF-16 實際上也是一個變長編碼(2 位元組或 4位元組)。
如果一個抽象的字元在 UTF-16 編碼下占 4 位元組,顯然它是不能放到 char 中的。換言之, char 中只能放 UTF-16 編碼下只佔芹輪消 2 位元組的那些字元。而 getBytes 實際是做編碼轉換,你應該顯式傳入一個參數來指定編碼,否則它會使用預設編碼來轉換。
你說「 new String("字").getBytes().length 返回的是3 」,這說明預設編碼是 UTF-8.
如果你顯式地傳入一個參數,比如這樣「 new String("字").getBytes("GBK").length 」,那麼返回就是 2。你可以在啟動 JVM 時設置一個預設編碼,假設你的類叫 Main,那麼在命令行中用 java 執行這個類時可以通過 file.encoding 參數設置一個預設編碼。
比如這樣:java -Dfile.encoding=GBK Main
這時,你再執行不帶參數的 getBytes() 方法時,new String("字").getBytes().length 返回的就是 2 了,因為現在預設編碼變成 GBK 了。
當然,如果這時你顯式地指定編碼,new String("字").getBytes("UTF-8").length 返回的則依舊是 3.
否則,會使用所在操作系統環境下的預設編碼。
通常,Windows 系統下是 GBK,Linux 和 Mac 是 UTF-8.
但有一點要注意,在 Windows 下使用 IDE 來運行時,比如 Eclipse,如果你的工程的預設編碼是 UTF-8,在 IDE 中運行你的程序時,會加上上述的 -Dfile.encoding=UTF-8 參數,這時,即便你在 Windows 下,預設編碼也是 UTF-8,而不是 GBK。
由於受啟動參數及所在操作系統環境的影響,不帶參數的 getBytes 方法通常是不建議使用的,最好是顯式地指定參數以此獲得穩定的預期行為。
⑸ 一個漢字在計算機中佔用幾個位元組
一個中文漢字占兩個位元組的空間,一個漢字中的標點也是兩個位元組。
計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一位元組等於八位,也在一些計算機編程語言中表示數據類型和語言字元。
一個英文字母(不分大小寫)占模芹一個位元組的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數。換算為十進制 ,最吵戚小值-128,最大值127。如一個ASCII碼就是一個位元組。
(5)一個字在數據區中佔多少擴展閱讀:
任何數據類型的數組都需要 20 個位元組的內存空間,加上每一數組維數占 4 個位元組,再加上數據本身所佔用的空間。數據所佔用的內存空間可以用數據元數目乘上每個元素的大小加以計算。
例如,以 4 個 2位元組之 Integer 數據元所組成的一維數組中的數據,占 8 個位元組。這 8 個位元組加上額外的 24 個位元組,使得這個數組所需總內存空間為 32 個位元組。
Byte數據類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值范圍:0到255。 Byte是從0-255的無符升碼陵號類型,所以不能表示負數。具體參照數據類型。
⑹ 一個漢字佔用幾個位元組
一個漢字=2位元組
中文標點佔三個位元組,一個英文字母佔一個位元組,英文標點佔一個位元組。
位元組的換算襪森關系為:
1位元組(Byte)=8字位=8個二進制數
1字位(bit)=1個二進制數
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
b稱為字位、B稱為位元組、KB稱為千位元組、MB稱為兆位元組、GB稱為吉位元組。
(6)一個字在數據區中佔多少擴展閱讀:
不同的編碼格式佔位元組數是不同的,以下為不同編碼漢字、標點符號所佔用的位元組:
1、ASCII碼:一個中文(含繁體)占兩個位元組,一個中文標點佔三個位元組。一個英文字母佔一個位元組的,一個英文標點佔一個位元組。
2、UTF-8編碼:一個中文(含繁體)佔三個位元組,一個中文標點佔三個位元組。一個英文字母佔一告首畝個位元組,一個英文標點佔一個位元組。
3、Unicode編碼:一個中文(含繁體)占兩個位元組,一個芹信中文標點占兩個位元組。一個英文占兩個位元組,一個英文標點佔一個位元組。
⑺ 一個中文字是多少個位元組(字)
位元組也叫Byte,是計算機數據的基本存儲單位,在電腦里一個中文字占兩個位元組。
8bit(位)=1Byte(位元組)
1024Byte(位元組)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
其中:K是千,M是兆,G是吉咖,T是太拉。
(7)一個字在數據區中佔多少擴展閱讀:
1、字
在計算機中,一串數碼作為一個整體來處理或運算的,稱為一個計算機字,簡稱字。字通常分為若干個位元組(每個位元組一般是8位)。在存儲器中,通常每個單元存哪鏈手儲一個字,因此每個字都是可以定址的。字的長度用位數來表示。
在計算機的運算器、控制器中,通常都是以字為單位進行傳送的。字出現在不同的地址其含義是不相同。例如,送往控制器去的字是指令,而送往運算器去的字就是一個數。
2、字長
計算機的每個字所包含的位數稱為字長。根據計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定范圍內,其長度是可變的。
計算的字長是指它一次可處理的二進制數字的數目。計算機處理數據的速率,自然和它一次能加工的位數以及進行運算的快慢有關。如果一台計算機的字長是另一台計算機的兩倍,即使兩台計算機的速度相同,在相同的時間內,前者能做的工作是後者的兩倍。
一般地,大型計算機的字長為32-64位,小型計算機為12-32位,而微型計算機為4-16位。字長是衡量計算機性能的一個重要因素。
3、位元組
位元組是指一小組相鄰的二進制數碼。通常是8位作為一個位元組。它是構成信息的一個小單位,並作為一個整體來參加操作,比字小,李嫌是構成字的單位。
在微型計算機中,通常用多少位元組來表示存儲器的存儲容量。
字元:人們使用的記號,抽象意義上的一個符號。
位元組:計算機中存儲數據的單元,一個8位的二進制數,是一個很具體的存儲空間。
4、字元串
在內存中,如果「字元」是以ANSI編碼形式存在的,一個字元可能使用一個位元組或多個位元組來表示,那麼我們稱這種字元串為ANSI字元串或者多位元組字元串。如,"中文123" (佔8位元組,包括一個隱藏的 )。
字元集
對於ANSI編碼方式,存在不同的字元集(Charset)。同喚物樣的位元組序列,在不同的字元集下表示的字元不一樣。要正確解析一個ANSI字元串,還要選擇正確的字元集,否則就可能導致所謂的亂碼現象。不同語言版本的操作系統,都有一個默認的字元集。在不指定字元集的情況下,系統會使用此字元集來解析ANSI字元串。
每個字元集都有一個唯一的編號,稱為代碼頁(Code Page)。簡體中文(GB2312)的代碼頁為936,而系統默認字元集的代碼頁為0,它表示根據系統的語言設置來選擇一個合適的字元集。
⑻ 一個漢字多少位元組
一個漢字=2個英文字母=2位元組
官方標准:
1漢字=2位元組
1位元組(Byte)=8字位=8個二進制數
1字位(bit)=1個二進制數
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
硬體商標准:
1GB=1000MB
1MB=1000KB
1KB=1000B
通常情況下,把B稱為位元組、b稱為字位、KB稱為千位元組、MB稱為兆位元組、GB稱為吉位元組。
一個中文漢字占兩個位元組的空間。
一個英文字母(不分大小寫)佔一個位元組的空間。
英文標點2佔一個位元組,中文標點占兩個位元組。
位元組(Byte)是計算機信息技術用於計量存儲容量和傳輸容嘩譽宴量的一種計量單位,1個位元組等於8位二進制,也表示一些計算機編程語言中的數據類型和語言字元。
任何數據類型的數組都需要 20 個位元組的內存空間,加上每一數組維數占 4 個位元組,再加上數據本身所佔用的空間。
數據所佔用的內存空間可以用數據元數目乘上每個元素的大小加以計算。例如,以 4 個 2位元組之 Integer 數據元所組成的一維數組中的數據,占 8 個位元組。這 8 個位元組加上額外的 24 個位元組,使得這個數組所需總內存空間為 32 個位元組。
numeric[ (p[ ,s] )] 固定精度和小數位數.使用最大精度時,有效值的范圍為 - 依0^三吧 +依 到 依0^三吧 - 依.decimal 的 ISO 同義詞為 dec 和 dec(p、s).numeric 在功能上等價於 decimal. p(精度) 最多可以存儲的十進制數字的總位數,包括小數點左邊和右邊的位數.該精度必須是從 依 到最大精度 三吧 之間的值.默認精度為 依吧. s (小數位數) 小數點右邊可以存儲的十進制數字的最大位數.小數位數必須是從 0 到 p 之間的值.僅在指定精度後才可以指定小數位數.默認的小數位數為 0;因此,
在編程語言中:「一個漢字占兩個位元組,一個英文字母佔一個位元組」在做C#編程時,特別要注意當遇到字元串判斷時字元串所佔的位元組數不然就會出錯了哦!
java中無論漢字或字母都是2位元組
Oracle一個中文漢字佔用幾個位元組,要根據Oracle中字元集編碼決定。
查詢Oracle Server端的字元集方法:
有很多種方法可以查出虛數oracle server端的字元集,比較直觀的查詢方法是以下這種:
SQL>select userenv(『language』) from al;
結果如下:AMERICAN _ AMERICA. ZHS16GBK。
位元組(Byte /t/ n. [C])是計算機信息技術用於計量存儲容量的一種計量單位,通亂銀常情況下一位元組等於有八位,也表示一些計算機編程語言中的數據類型和語言字元。Byte數據類型(位元組型)用一個位元組(Byte)儲存,可區別256個數字,取值范圍:0到255。 Byte是從0-255的無符號類型,所以不能表示負數。具體參照數據類型。
這個要看你採用什麼編碼,一般Unicode是兩個位元組,不過UTF-8是三個位元組,還有GBK是兩位元組,但是GB18030中有些漢字是四位元組
1個ASCII碼佔1個位元組,而1個漢字編碼佔2個位元組。
這是指漢字編碼,就象每個字元都有一個ASCII碼一樣。
如果是在UTF-8編碼下,一個漢字佔3個位元組,UTF-8是一種國際通用的一種變長編碼。
西方文字(希臘文字)佔2個字元,中文佔用3個位元組數,還有平面符號佔4個位元組。
漢字,又稱中文字,中國字,方塊字,屬於表意文字的詞素音節文字。漢字是漢語的書寫用文字 ,也被借用於書寫日語,朝鮮語,越南語等語言,是漢字文化圈廣泛使用的一種文字,也是目前世界上唯一仍被廣泛使用的高度發達的文字。