• 移动比联通强的帖子的再次探讨


    这个问题在很久以前就看过了。只是最近又有人把这火星帖拿出来玩。突然发现以前自己知道是什么原因,现在竟然忘记了。

    如果你的电脑操作系统是win2000或winxp的话,
      
      那么:1、在桌面上点右键,选择新建 - 文本文档;
      
      2、打开“新建 文本文档”,录入“移动”两字后存盘退出;   
      
      3、重新打开“新建 文本文档”,看到什么了?   
      
      4、是不是刚刚录入的“移动”两字?   
      
      咱们换过来   
      
      1、在桌面上点右键,选择新建 - 文本文档;   
      
      2、打开“新建 文本文档”,录入“联通”两字后存盘退出;   
      
      3、重新打开“新建 文本文档”,看到什么了?    
      
      4、是不是刚刚录入的“联通”两字不见了,取而代之是个烧焦的手机电池的模样?

    确实是这样,但如果我保存的时候编码改成UTF-8就没有这样的事情。

    说明这就是编码引起的,可到底是如何引起的呢?

    因为Windows自带的记事本默认是以Ansi编码保存文件的,而联通这两个字的16进制代码是FFFE6A006803,所以被认为是UTF-8编码。这是因为“联通”两个字的GB-2312编码看起来更像UTF-8编码导致的,这是一个巧合,不是所有文字都这样。

    “联通”的编码为C1 AA CD A8,其中C1和CD就是Leading Byte。前127个编码为标准ASCII保留,例如“0”的编码是30H(30H表示十六进制的30)。软件在读取时,如果看到30H,知道它小于128就是标准ASCII,表示“0”,看到C1大于128就知道它后面有一个另外的编码,因此C1 AC一同构成一个整个的编码,在GB-2312字符集中表示“联”。

    当文档中所有字符都在C0≤AA≤DF 80≤BB≤BF这个范围的时候,notepad都无法确认文档的格式,没有自动按照UTF-8格式来显示。“联通”就是C1 AA CD A8,刚好在上面的范围内,所以不能正常显示。

    而用UTF-8编码方式打开的联通两字,则只能是一个黑黑的大方块了。如果你能找到其它UTF-8编码以FFFE开头的中文字,则也可以达到“联通”这种效果。

    也就是超过了他们原来的编码范围,才导致乱码。

    附:gb2312编码表;http://www.knowsky.com/resource/gb2312tbl.htm

    只有你写的汉字都在上述的范围内就会产生上述的现象。

  • 相关阅读:
    tomcat修改端口
    JSP_大并发_秒杀
    Nexus刷官方下载的映像_occam
    Nexus杂
    多项式ADT加法乘法——数组实现
    单链表——游标实现
    链表基本操作实现
    二叉查找树
    AVL树
    ORM框架疏理——廖雪峰实战系列(一)
  • 原文地址:https://www.cnblogs.com/luanwey/p/512065.html
Copyright © 2020-2023  润新知