文件编码方式

作者: 锦囊喵 | 来源:发表于2022-04-11 15:52 被阅读0次

    https://blog.csdn.net/u013139008/article/details/79425520

    1.每个文件如何知道该文件是大端还是小端格式?
    文件的开头有两个字节:FEFF 大端
    FFFE 小端 这两个字节叫零宽度非换行空格

    2.Unicode可以编码世界上所有的字符
    但是没有规定多少个字节表示一个字符(没有规定存储)。如果按照字符使用的最长的字节数来表示,就会造成存储上的浪费。

    3.UTF-8是Unicode的一种使用方式。UTF-8是一种可变长的编码方式。使用1-6个字节表示一个字符。
    一下是Unicode和UTF-8的对照表:

    |  Unicode符号范围        |  UTF-8编码方式  
    

    n | (十六进制) | (二进制)
    ---+-----------------------+------------------------------------------------------
    1 | 0000 0000 - 0000 007F | 0xxxxxxx
    2 | 0000 0080 - 0000 07FF | 110xxxxx 10xxxxxx
    3 | 0000 0800 - 0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
    4 | 0001 0000 - 0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    5 | 0020 0000 - 03FF FFFF | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
    6 | 0400 0000 - 7FFF FFFF | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

    如果一个文件是UTF-8格式的,可以选择是否添加BOOM头。
    本来BOOM头存在的原因就是为了标识该文件是UTF-8编码的。
    BOOM头是指在文件开头有三个零宽度字符:efbbbf

    4.ANSI编码格式就是GBK的编码格式

    5.ASCII码 使用一个字节进行编码 128个字符 0-127 0x00-0x7F

    6.GB2312是区位码,通过使用区号和位号来指定一个汉字

    7.GBK总体编码范围为0x8140~0xFEFE,首字节在 0x81~0xFE 之间,尾字节在 0x40~0xFE 之间
    编码格式是CP936 也是值GBK,因为微软Windows安排给GBK的CodePage 是CP936

    在一个GBK编码的格式文件中数字和英文都是使用半角的,也就是使用一个字节进行编码。如果是全角的,就是使用两个字节进行编码。在读一个文件的时候,如果是GBK格式,读到的一个字节的首位是0,说明该字节是ASCII码。如果是1,说明该字节是GBK编码,使用两个字节表示一个汉字。

    8.如何区分一个文件的编码方式:
    1)有boom头,表示是UTF-8
    2)无boom头,只能根据文本进行分析

    9.UCS-2编码是指使用两个字节表示Unicode码,UCS-4是指使用4个字节表示Unicode码。

    10.Unicode和GBK之间没有算法和规则进行转换,只能通过一个大表将二者关联起来。

    相关文章

      网友评论

        本文标题:文件编码方式

        本文链接:https://www.haomeiwen.com/subject/aroisrtx.html