字符的簡介:
在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 字串來說,不管在什麼環境下,它所代表的「字元」內容總是不變的.
以上是php一個漢字幾個位元組的詳細內容。更多資訊請關注PHP中文網其他相關文章!