雖然許多語言每個(gè)必要字符都能一對一映射到 8 比特(bit)的值,但也有好幾種語言需要非常多的字符來書面通訊,以至于它們的編碼范圍不能僅僅包含在一個(gè)字節(jié)里(一個(gè)字節(jié) Byte 由 8 比特 bit 構(gòu)成。每一比特僅能包含兩種不同的值: 1 或 0。所以,一字節(jié)僅能夠表示 256 種不同的值,即 2 的八次方)。 開發(fā)多字節(jié)字符編碼方案是為了在基于字節(jié)的常規(guī)編碼系統(tǒng)中表達(dá)超過 256 個(gè)字符。
在你操作(trim、split、splice 等等)多字節(jié)編碼的字符串的時(shí)候,由于在這種編碼方案下,兩個(gè)或多個(gè)連續(xù)字節(jié)可能只表達(dá)了一個(gè)字符,所以你需要使用專門的函數(shù)。 否則,當(dāng)你將不能檢測多字節(jié)字符串的函數(shù)應(yīng)用到這個(gè)字符串的時(shí)候,它可能無法檢測多字節(jié)字符的起始位置,并以亂碼字符串結(jié)尾,基本丟失了它原來的意思。
mbstring
提供了針對多字節(jié)字符串的函數(shù),能夠幫你處理 PHP 中的多字節(jié)編碼。
除此以外,mbstring
還能在可能的字符編碼之間相互進(jìn)行編碼轉(zhuǎn)換。
為了方便起見,mbstring
設(shè)計(jì)成了處理基于 Unicode 的編碼,類似 UTF-8、UCS-2 及諸多單字節(jié)的編碼(在以下列出了)。