字元的簡介:
在js中,中文佔兩個字元,英文佔乙個字元;
在php中,不同編碼下不相同,在gbk/gb2312編碼下乙個中文佔2個字元,utf-8/unicode編碼下乙個中文佔3個字元;
推薦:《php教程》
php 位元組 和字元
php在utf-8編碼下,乙個漢字佔3個位元組,gbk編碼下只佔2個位元組。
zìfú(字元)
字元是可使用多種不同字元方案或**頁來表示的抽象實體。例如,unicode utf-16 編碼將字元表示為 16 位整數序列,而 unicode utf-8 編碼則將相同的字元表示為 8 位位元組序列。公共語言執行庫使用 unicode utf-16(unicode 轉換格式,16 位編碼形式)表示字元。
針對公共語言執行庫的應用程式使用編碼將字元表式形式從本機字元方案對映至其他方案。應用程式使用解碼將字元從非本機方案對映至本機方案。
zìjié(位元組)
位元組(byte):位元組是通過網路傳輸資訊(或在硬碟或記憶體中儲存資訊)的單位。
乙個英文本母(不分大小寫)佔乙個位元組的空間,乙個中文漢字佔兩個位元組的空間.
符號:英文標點佔乙個位元組,中文標點佔兩個位元組.
乙個二進位制數字序列,在計算機中作為乙個數字單元,一般為8位二進位制數,如乙個ascii碼就是乙個位元組,此類單位的換算為:
理解編碼的關鍵,是要把字元的概念和位元組的概念理解準確。這兩個概念容易混淆,我們在此做一下區分:
概念描述 舉例
字元 人們使用的記號,抽象意義上的乙個符號。 '1', '中', 'a', '$', '¥', ……
位元組 計算機中儲存資料的單元,乙個8位的二進位制數,是乙個很具體的儲存空間。 0x01, 0x45, 0xfa, ……
ansi
字串 在記憶體中,如果「字元」是以 ansi 編碼形式存在的,乙個字元可能使用乙個位元組或多個位元組來表示,那麼我們稱這種字串為 ansi 字串或者多位元組字串。 "中文123"
(佔7位元組)
unicode
字串 在記憶體中,如果「字元」是以在 unicode 中的序號存在的,那麼我們稱這種字串為 unicode 字串或者寬位元組字串。 l"中文123"
(佔10位元組)
由於不同 ansi 編碼所規定的標準是不相同的,因此,對於乙個給定的多位元組字串,我們必須知道它採用的是哪一種編碼規則,才能夠知道它包含了哪些「字元」。而對於 unicode 字串來說,不管在什麼環境下,它所代表的「字元」內容總是不變的.
Oracel漢字佔幾個位元組
1 檢視oracle server端字符集 如果顯示如下 simplified chinese china.zhs16gbk,乙個漢字占用兩個位元組 如果顯示如下 simplified chinese china.al32utf8,乙個漢字占用三個位元組 select lengthb 你 from ...
ORACLE 中漢字佔幾個位元組?
一直認為中文再oracle中也是占用兩個字元 乙個字元占用乙個位元組 寫pl sql的時候報緩衝區溢位,被同事糾正,乙個漢字不止占用2個位元組,根據引數的不同,可能占用多個 2 4個 可以用下面的sql select from v nls parameters where parameter nls...
乙個漢字在資料庫佔幾個位元組
專案中oracle10g資料庫表字段為varchar n 型別,存英文很簡單,只要字母個數不大於n即可。但是對於漢字,按照同樣的方法就不行了。因為對於漢字不同的字符集,在資料庫占用的位元組是不一樣的。utf 8字符集,乙個漢字佔三個位元組,gbk字符集,乙個漢字佔兩個位元組,比如varchar 10...