国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

utf8的編碼算法 轉載

2024-09-06 12:44:05
字體:
來源:轉載
供稿:網友
unicode字符集是我們世界上最完善最全面的字符集,幾乎包含了世界上所有的字符。其實可以這么理解,unicode字符集是一張巨大的表格,把世界上各種語言的字符和標點符號都編排到里面,然后按照一定的順序給每個字符排號(很遺憾的是對于中文來說,這個順序不是按照漢語拼音的順序)。有了這張巨大的表格,世界上大部分字符就都有一個unicode內碼(整數)來對應。計算機就通過記錄字符的unicode碼來表示這個字符,然后交給操作系統,操作系統通過unicode碼到字符字體點陣的映射把這個內碼轉換成字體點陣顯示到我們的屏幕上。

         utf8是我們常用的編碼方式,在web開發中使用utf8編碼能完全解決字符集問題。其實utf8是unicode字符集的一種物理實現,它描述了如何高效的存儲unicode的內碼(就是上面說的字符在字符集的順序碼),RFC2044文檔(http: //www.ietf.org/rfc/rfc2044.txt?number=2044)描述了如何從一個內碼轉換成utf8格式的算法。英文不好沒關系,看這個轉換表就會馬上明白了:

   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

         上面的表格左邊是16進制表示的unicode內碼,最后一行的16進制數“7FFF FFFF”是utf8所能表示的內碼的最大值,換成10進制是這樣的一個數:2147483647(夠大吧:))[對不起,此文最初這兒寫錯了,已改正]。上面表格中右邊一列就是utf8的二進制格式,轉換規則可謂一目了然。我直接給出算法吧(js代碼):


    function toUtf8(code)
    {
     var iByte=0;
     var i=0;
     result="";
     while(code>0x7f)
     {
      iByte=code%0x40;
      code=(code-iByte)/0x40;
      result="%"+(iByte|0x80).toString(16).toUpperCase()+result;
      i++;
     }
     prefix=[0x0,0xc0,0xe0,0xf0,0xf8,0xfc];
     if(i>prefix.length)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲周县| 香河县| 崇明县| 西峡县| 兴城市| 临湘市| 安国市| 鲁山县| 吉安市| 天津市| 栾城县| 佛学| 阿拉善盟| 霍州市| 都江堰市| 犍为县| 军事| 措勤县| 玛纳斯县| 鲁甸县| 灵台县| 巴马| 闻喜县| 邻水| 巫溪县| 五莲县| 呼和浩特市| 徐汇区| 呼玛县| 淳化县| 清河县| 冷水江市| 济南市| 景谷| 日喀则市| 会同县| 施甸县| 兰坪| 旬邑县| 台安县| 金昌市|