oracle漢字佔多少位元組問題

2022-01-31 00:56:14 字數 502 閱讀 1176

1樓:夏傷

之前本人認為一個漢字都是佔兩個位元組的,mssql server如此(至少在我的理解範圍之內,如果有誤還請大家糾正)。但是最近在使用oracle資料庫,發現了一些特殊的東西,那就是,當你用兩個函式(分別是length和lengthb,這兩個函式到底是幹什麼用的,我想不需要我說明,大家查幫助就可以了)進行查詢時,發現結果是lengthb是length的三倍(當然前提是length函式中的引數都是漢字了),這就奇怪了,不是說漢字佔兩個位元組嗎?怎麼這裡變成了三個?

於是上網找資料,還真被我找到了。

select * from v$nls_parameters t where t.parameter='nls_characterset';

可以查詢到當前資料庫的字符集,如果value=zhs16gbk,那麼一個漢字佔用2個位元組,如果value=al32utf8,那麼一個漢字佔用3個位元組。

於是查詢了一下本人的資料庫,字符集果然是al32utf8(這是oracle資料庫預設的)。

為什麼漢字要佔兩個位元組,而英文字母只佔位元組啊

一個位元組是8位,0 127,只能表示128個字元,用來表示英文26個字母足夠了,但是用來表示漢字卻差遠了,漢字太多了,所以用兩個位元組,可以表述的最大漢字數量為2的16次方,這才夠用啊,呵呵。一個漢字兩個位元組 英文一個字母一個位元組 一般計算機字元編碼都是採用的ascii碼,它的範圍只有0 12...

漢字的由來,漢字的來歷100字

想知道漢字是怎麼創造出來的嗎?快來和我一起聽漢字的故事,瞭解漢字的來由吧 漢字,亦稱中文字 中國字 國字,是漢字文化圈廣泛使用的一種文字,屬於表意文字的詞素音節文字,為上古時代的華夏族人所發明創制並作改進,目前確切歷史可追溯至約公元前1300年商朝的甲骨文。再到秦朝的小篆,發展至漢朝才被取名為 漢字...

漢字的歷史資料50字,關於漢字的資料,50字就夠啦

甲骨文 甲骨文的發現是在一百多年前的清光緒,國子堅王懿榮得了大病,四處求醫找藥,無意中發現藥材中有一種刻了文字的龜甲,認為是很有價值的古物,於是便派人此處蒐購,原來這些龜甲是河南安陽一帶農民拾獲後賣給中藥店的,後來經研究發現龜甲上的紋路應該就是古老的文字,這個發現轟動了學術界和文化界,從此,甲骨文受...