utf8的編碼原理大概意思:
在UTF8中,字元使用1到6個八位序列編碼。
只有一個八位序列的字元,一個高位置為0,剩下的7位用於字元值的編碼(能表示ASCII)
一N個八位的序列(N>1),開頭的八位中高位有n位置為1,相鄰的一位置為0,這個八位中
剩下的位用於字元值的編碼,接著的N-1個八位序列中都在最高位置為1,相鄰位置為0,每一個八位序列剩下的6
位包含字元值的編碼位。
只有一個八位序列,則有7位編碼位,表示值為127以內的字元
兩個八位序列,第一個八位剩下5位,第二個序列剩下6位,共11位可以表示128到2048-1以內的字元
三個八位序列,第一個八位剩下4位,第二個序列剩下6位,第三個序列剩下6位,共16位,可以表示2048到65536-1以內的字元。
以此類推。
最大6個八位序列,用於字元的編碼值有1+5*6=31位,才可以表示2147483648-1以內的字元。
===================================================================================
摘取:RFC2044 - UTF-8
In UTF-8, characters are encoded using sequences of 1 to 6 octets.
The only octet of a "sequence" of one has the higher-order bit set to
0, the remaining 7 bits being used to encode the character value. In
a sequence of n octets, n>1, the initial octet has the n higher-order
bits set to 1, followed by a bit set to 0. The remaining bit(s) of
that octet contain bits from the value of the character to be
encoded. The following octet(s) all have the higher-order bit set to
1 and the following bit set to 0, leaving 6 bits in each to contain
bits from the character to be encoded.
The table below summarizes the format of these different octet types.
The letter x indicates bits available for encoding bits of the UCS-4
character value.
UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
utf8的編碼原理
相關文章
- MySQL中UTF8編碼的資料在cmd下亂碼MySql
- MySql修改資料庫編碼為UTF8MySql資料庫
- 對UTF8編碼方式字數做統計的函式函式
- C++ url中文編碼處理 編碼轉為UTF8 CChineseCode下載C++
- 用Javascript實現UTF8編碼轉換成gb2312編碼JavaScript
- iOS 將網址中%形式的引數進行UTF8編碼iOS
- 記住,永遠不要在 MySQL 中使用 “utf8” 編碼MySql
- URL編碼與解碼原理
- 原始碼編譯安裝的原理原始碼編譯
- 使用securecrt登陸rhel,編碼utf8,訪問sybase問題Securecrt
- 從原理上搞定編碼-- Base64編碼
- Mysql編碼, Mysql編碼流程, Mysql編碼順序, Mysql編碼原理, Mysql編碼修改依據MySql
- perl utf8 encoding decoding HTML::Entities Perl中字串編碼的處理EncodingHTML字串編碼
- base64 編碼原理
- Base64 編碼解碼原理
- google protocol buffer——protobuf的編碼原理二GoProtocol
- 視訊編碼原理簡介
- 檢視修改mysql編碼方式讓它支援中文(gbk或者utf8)MySql
- 一個網站中有big5編碼網頁及utf8編碼網頁之解決方法網站網頁
- 【字元編碼系列】Base64編碼原理以及實現字元
- base64編碼的原理及實現
- javaScript實現utf8解碼程式碼JavaScript
- [轉]SqlServe到PG遷移錯誤:無效的編碼序列”UTF8″:0x00SQL
- google protocol buffer——protobuf的使用特性及編碼原理GoProtocol
- 計算機執行彙編程式碼的原理計算機
- Oracle將字元編碼從GBK轉到UTF8,如何操作比較穩妥?Oracle字元
- php 擷取漢字字串 亂碼解決 支援utf8和gb2312的編碼的漢字PHP字串
- 一文搞懂影片編解碼原理
- base64編碼原理和函式函式
- 從編譯後的程式碼,分析 Angular @Injectable 的工作原理編譯Angular
- [底層原理]iOS中函式的型別編碼iOS函式型別
- 關於base64編碼的原理及實現
- 擷取 UTF8 編碼字串從首位元組開始指定寬度 (非長度)字串
- Thrift原理分析(二)協議和編解碼協議
- URL編碼:原理、應用與安全性
- 編譯原理編譯原理
- 《Vue不看原始碼懂原理》系列——Vue模板編譯Vue原始碼編譯
- ZOMI的AI編譯原理1AI編譯原理