zoukankan      html  css  js  c++  java
  • ANSI、Unicode、Unicode big endian、UTF8编码

    保存文本文件的时候,可以选择的编码有ANSIUnicodeUnicode big endianUTF-8四种。

    不同的编码,保存在文件中的01代码是不同的,我们新建一文本文件,输入“ABC”,分别以上面四种编码形式保存为4个文件ANSI.txtUnicode.txtUbig.txtUTF8.txt,并使用cmd中的debug程序查看文件内容如下:

    1、ANSI.txt

    2、Unicode.txt

    3、Ubig.txt

    4、UTF8.txt

    我们发现,“ABC”保存在文件中的01代码分别为:

    •  ANSI编码:

              41 B3 CC 42 D0 F2 43

    • Unicode编码:

              FF FE 41 00 0B 7A 42 00 8F 5E 43 00

              “FF FE”文件编码标识

    • Unicode big endian编码:

              FE FF 00 41 7A 0B 00 42 5E 8F 00 43

              “FE FF”文件编码标识

    • UFT-8编码:

              EF BB BF 41 E7 A8 8B 42 E5 BA 8F 43

             “EF BB BF”文件编码标识

     

    一、ANSI编码:

    ANSI是默认的编码方式。对于英文字符是ASCII编码,对于简体中文字符是GB2312编码(只针对Windows简体中文版,如果是繁体中文版会采用Big5码)。

    二、Uincode编码:

    Unicode编码指的是UCS-2编码方式,即直接用两个字节存入字符的Unicode码。这个选项用的little endian格式。

    三、Unicode big endian编码:

    “endian”一词来源于英国作家斯威夫特的《格列佛游记》。在该书中,小人国里爆发了内战,战争起因是人们争论,吃鸡蛋时究竟是从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。为了这件事情,前后爆发了六次战争,一个皇帝送了命,另一个皇帝丢了王位。

    因此,第一个字节在前,就是大头方式Big endian),第二个字节在前就是小头方式Little endian)。小人国为水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开而争论,争论的双方分别被称为Big-endiansLittle-endians

    对比Unicode编码,可发现,Unicode big endian编码只是字符的两个字节的存放顺序不同而已。

    四、UFT-8编码:

    UTF-8UNICODE的一种变长字符编码又称万国码,由Ken Thompson1992年创建。现在已经标准化为RFC 3629UTF-816字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)。

    【结束语】

    这几种编码当然都有它的编码规则,不过,对于我们使用者来说,只需要知道不同的编码,保存在文件中的0、1代码是不同的,使用不同的编码规则浏览文件,很显然会出现乱码。

    这就需要我们在编写文件的时候,养成一个良好的习惯,特别声明一下我们使用的编码,例如,在网页文件中使用META内容元素声明我们的编码:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

     

    参考网址:

    http://baike.baidu.com/view/40801.htm

    http://baike.baidu.com/view/1485693.htm

    http://baike.baidu.com/view/742823.htm

    http://blog.sina.com.cn/s/blog_6d71f75301016xm0.html

  • 相关阅读:
    UNO卡牌游戏—个人博客
    Java第09次实验(IO流)--实验报告
    UNO卡牌游戏—个人博客
    JAVA面向对象编程课程设计——UNO卡牌游戏
    Java——流、文件与正则表达式
    网络1911、1912 D&S第5次作业--批改总结
    java课程设计之--Elasticsearch篇
    C博客作业05--指针 批改总结
    树、二叉树、查找算法总结
    KMP算法的next/nextval值的个人理解
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211601.html
Copyright © 2011-2022 走看看