zoukankan      html  css  js  c++  java
  • 字符編碼

    1. 128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节。
    2. 带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节。
    3. 其他基本多文种平面(BMP)中的字符(CJK属于此类-Qieqie注)使用三个字节。
    4. 其他 Unicode 辅助平面的字符使用四字节编码。

    GBK编码,一个汉字占两个字节。汉字在GB家族中是双字节

    UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。

    UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。但在UTF-8中却是3字节 所以其编码方式是1110xxxx 10xxxxxx 10xxxxxx  UTF-8 使用一至四个字节为每个字符编码。
     
     
     
     

    占 2 个字节的:〇

    占 3 个字节的:基本等同于 GBK,含 21000 多个汉字

    占 4 个字节的:中日韩超大字符集里面的汉字,有 5 万多个


    1 个 utf8 数字占 1 个字节

    1 个 utf8 英文字母占 1 个字节


    在查找 UTF-8 编码资料时发现,很多的帖子说的 UTF-8 编码里,一个汉字占用3个字节,

    有的还做了个证明,大概是这样的,创建一个没有 BOM 的 UTF-8 编码的文本文件,

    里面保存了几个汉字,然后查看文件的大小。我觉得这样的证明没有一点说服力,

    因为 UTF-8 是变长的,1-6 个字节,少量的汉字检测不能说明所有的汉字都是的。


    后来我又查看了字符映射表-汉语,找到了正确的答案:

    少数是汉字每个占用 3 个字节,多数占用 4 个字节。


    占用 3 个字节的范围

    U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3      共 115 个  

    U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 - 0xE2 0xBF 0x95      共 213 个  

    U+3005 - U+3029 : 0xE3 0x80 0x85 - 0xE3 0x80 0xA9      共 36 个  

    U+3038 - U+4DB5 : 0xE3 0x80 0xB8 - 0xE4 0xB6 0xB5      共 7549 个  

    U+4E00 - U+FA6A : 0xE4 0xB8 0x80 - 0xEF 0xA9 0xAA      共 44138 个  

    U+FA70 - U+FAD9 : 0xEF 0xA9 0xB0 - 0xEF 0xAB 0x99      共 105 个  

    合计: 52156 个


    占用 4 个字节的范围

    U+20000 - U+2FA1D : 0xF0 0xA0 0x80 0x80 - 0xF0 0xAF 0xA8 0x9D      共 64029 个  

    合计: 64029 个
  • 相关阅读:
    Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. ......
    UVA 1597 Searching the Web
    UVA 1596 Bug Hunt
    UVA 230 Borrowers
    UVA 221 Urban Elevations
    UVA 814 The Letter Carrier's Rounds
    UVA 207 PGA Tour Prize Money
    UVA 1592 Database
    UVA 540 Team Queue
    UVA 12096 The SetStack Computer
  • 原文地址:https://www.cnblogs.com/aipan/p/7479765.html
Copyright © 2011-2022 走看看