• [转]ANSI版本和unicode版本


    最初,Internet上只有一种字符集——ANSI的ASCII字符集(American Standard Code for Information Interchange, “美国信息交换标准码),它使用7 bits来表示一个字符,总共表示128个字符,后来IBM公司在此基础上进行了扩展,用8bit来表示一个字符,总共可以表示256个字符,充分利用了一个字节所能表达的最大信息 
    nANSI字符集:ASCII字符集,以及由此派生并兼容的字符集,如:GB2312,正式的名称为MBCS(Multi-Byte Chactacter System,多字节字符系统),通常也称为ANSI字符集。 
    
    UNICODE与UTF8,UTF16 
    
    由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,产生了Unicode字符集,它固定使用16 bits(两个字节)来表示一个字符,共可以表示65536个字符 
    标准的Unicode称为UTF-16(UTF:UCS Transformation Format )。后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8,使用类似MBCS的方式对Unicode进行编码。(Unicode字符集有多种编码形式) 
    例如“连通”两个字的Unicode标准编码UTF-16 (big endian)为:DE 8F 1A 90 
    而其UTF-8编码为:E8 BF 9E E9 80 9A 
    
    
    当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件一般采用三种方式来决定文本的字符集和编码: 
    检测文件头标识,提示用户选择,根据一定的规则猜测 
    最标准的途径是检测文本最开头的几个字节,开头字节 Charset/encoding,如下表: 
    EF BB BF UTF-8 
    FE FF UTF-16/UCS-2, little endian 
    FF FE UTF-16/UCS-2, big endian 
    FF FE 00 00 UTF-32/UCS-4, little endian. 
    00 00 FE FF UTF-32/UCS-4, big-endian.
  • 相关阅读:
    (转载)C#控件缩写规范
    ToString()格式和用法大全,C#实现保留两位小数的方法
    C#数字前面如何补0
    (转载)C#语言开发规范
    (转载)C#:Enum、Int和String的互相转换,枚举转换
    [踩坑系列]URLEncode 中对 空格的编码有 “+”和“%20”两种
    [IDEA]IDEA设置注释模板
    [Mybatis]Mybatis 常用标签及功能整理
    [设计模式]静态代理
    记一次java电话面试
  • 原文地址:https://www.cnblogs.com/apigiraffe/p/2738421.html
Copyright © 2020-2023  润新知