導航:首頁 > 數據處理 > 資料庫一個中文多少位元組

資料庫一個中文多少位元組

發布時間:2023-06-09 07:34:12

『壹』 資料庫中一個漢字占幾個字元

如果你說的「字元」就是指 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 方法通常是不建議使用的,最好是顯式地指定參數以此獲得穩定的預期行為。

『貳』 資料庫中一個漢字占幾個字元

資料庫中一個漢字佔用兩個字元,英文和數字佔用一個字元。
望採納

『叄』 mysql 資料庫varchar可以存儲多少個漢字和多少個數字

首先要確定mysql版本,一般一個漢字2個位元組,50即可存25個漢字。

4.0版本以下,varchar(100),指的是100位元組,如果存放UTF8漢字時,只能存33個(每個漢字3位元組)

5.0版本以上,varchar(100),指的是100字元,無論存放的是數字、字母還是UTF8漢字(每個漢字3位元組),都可以存放100個。

varchar特點

1、使用比固定長度類型(char)佔用更少存儲空間(除了使用ROW_FORMAT=FIXED創建的MyISAM表)。

2、使用額外的1-2位元組來存儲值長度,列長度<=255使用1位元組保存,其它情況使用2位元組保存。例如varchar(10)會佔用11位元組存儲空間,varchar(500)會佔用502位元組存儲空間。

3、節約空間,所以性能會有幫助。在更新的時候會產生額外的工作。

以上內容參考:網路-varchar

閱讀全文

與資料庫一個中文多少位元組相關的資料

熱點內容
雪肌麗仁產品怎麼樣 瀏覽:274
怎麼做麥吉麗的代理 瀏覽:497
產品資質證書是什麼 瀏覽:511
百度文庫為什麼下載的是數據 瀏覽:810
快遞信息如何查商家 瀏覽:773
鋪面信息簡介怎麼寫 瀏覽:561
理財基金介紹產品怎麼買 瀏覽:41
代理網店需要哪些手續 瀏覽:273
怎麼樣發信息呢 瀏覽:236
羅布樂思技術困難怎麼回事 瀏覽:822
推薦理財產品客戶問為什麼相信你 瀏覽:470
貴陽葯膏批發市場在哪裡 瀏覽:384
醫療小程序做什麼 瀏覽:670
濰坊去哪裡考察市場 瀏覽:777
手機如何發信息開通粉鑽 瀏覽:29
如何研究交易技術 瀏覽:444
sql數據選項卡在哪裡 瀏覽:886
僱傭別人做微信小程序多少錢 瀏覽:200
恆泰證券怎麼開通轉債交易 瀏覽:539
縣城沒有順豐快遞代理怎麼樣 瀏覽:178