unicode是為了解決傳統的字元編碼方案的侷限而產生的,例如iso 8859所定義的字元雖然在不同的國家中廣泛地使用,可是在不同國家間卻經常出現不相容的情況。很多傳統的編碼方式都有乙個共同的問題,即容許電腦處理雙語環境(通常使用拉丁字母以及其本地語言),但卻無法同時支援多語言環境(指可同時處理多種語言混合的情況)
在文書處理方面,統一碼為每乙個字元而非字形定義唯一的**(即乙個整數)。換句話說,統一碼以一種抽象的方式(即數字)來處理字元,並將視覺上的演繹工作(例如字型大小,外觀形狀,字型形態,文體等)留給其他軟體來處理,例如網頁瀏覽器或者是文字處理器
目前,幾乎所有電腦系統都支援基本拉丁字母,並各自支援不同的其他編碼方式。unicode為了和它們相互相容,其首256字元保留給iso 8859-1所定義的字元,使既有的西歐語系文字的轉換不需要特別考量;並且把大量相同的字元重複編到不同的字元中去,使得舊有紛雜的編碼方式得以和unicode編碼間互相直接轉換,而不會丟失任何資訊。
統一碼的編碼方式與iso 10646的通用字符集概念相對應。目前實際應用的統一碼版本對應於ucs-2,使用16位的編碼空間。也就是每個字元占用2個位元組。這樣理論上一共最多可以表示65536個字元。基本滿足各種語言的使用。實際上當前版本的統一碼並未完全使用這16位編碼,而是保留了大量空間以作為特殊使用或將來擴充套件。
上述16位統一碼字元構成基本多文種平面。最新的統一碼版本定義了16個輔助平面,兩者合起來至少需要佔據21位的編碼空間,比3位元組略少。但是事實上輔助平面字元仍然占用4位元組編碼空間,與ucs-4保持一致
unicode的實現方式不同於編碼方式。乙個字元的unicode編碼是確定的。但是在實際傳輸過程中,由於不同系統平台的設計不一定一致,以及出於節省空間的目的,對unicode編碼的實現方式有所不同。unicode的實現方式稱為unicode轉換格式(unicode transformation format,簡稱utf)
例如,如果乙個僅包含基本7位ascii字元的unicode檔案,如果每個字元都使用2位元組的原unicode編碼傳輸,其第一位元組的8位始終為0。這就造成了比較大的浪費。對於這種情況,可以使用utf-8編碼,它將基本7位ascii字元仍用7位編碼表示,占用乙個位元組(首位補0).而遇到與其他unicode字元混合的情況,將按一定演算法轉換,每個字元使用1-3個位元組編碼,並利用首位為0或1進行識別。這樣對以7位ascii字元為主的西文文件就大大節省了編碼長度。類似的,對未來會出現的需要4個位元組的輔助平面字元和其他ucs-4擴充字元,2位元組編碼的utf-16也需要通過一定的演算法進行轉換。
utf-8(8-bit unicode transformation format)是一種針對unicode的可變長度字元編碼,也是一種字首碼。它可以用來表示unicode標準中的任何字元,且其編碼中的第乙個位元組仍與ascii相容,這使得原來處理ascii字元的軟體無須或只須做少部分修改,即可繼續使用。因此,它逐漸成為電子郵件、網頁及其他儲存或傳送檔案的應用中,優先採用的編碼。
utf-8使用一至四個位元組為每個位元組編碼:
128個us-ascii字元只需要乙個字元編碼(unicode範圍由u+0000至u+007f)
帶有附加符號的拉丁文,希臘文,西里爾字母,亞美尼亞語,希伯來文,阿拉伯文、敘利亞文及它拿字母則需要二個位元組編碼(unicode範圍由u+0080至u+07ff)
其他基本多文種平面(bmp)中的字元(這包含了大部分常用字)使用三個位元組編碼
其他極少使用的unicode 輔助平面的字元使用四位元組編碼
public static function strsplitphp5utf8 ($str)else
$key = null;
for ($j = 0; $j < $split; $j ++, $i ++)
array_push($array, $key);
}return $array;
}
php漢字轉拼音 漢字轉拼音 用PHP實現
每日17點準時技術乾貨分享 php實現漢字轉拼音 php漢字轉拼音我使用到了overtrue pinyin拓展 一 安裝overtrue pinyin拓展 composer require overtrue pinyin二 overtrue pinyin拓展簡單使用overtrue pinyin拼音...
PHP 漢字轉拼音
php 漢字轉拼音 author jerryli hzjerry gmail.com version v0.20140715 package spfw.core.lib.final global sea php fw var env example echo cutf8 py encode 阿里巴巴...
php 漢字轉拼音
php 漢字轉拼音 example echo chinese to py getpy 這是一段測試文字,this is a string 結果為拼音首字母 echo chinese to py getpy 這是一段測試文字,this is a string all 結果為全拼音 echo chine...