zoukankan      html  css  js  c++  java
  • 关于烦躁的网页编码问题utf-8,gb2312。终于自己实践了一遍

    俗话说实践是检验真理的唯一标准,的确如此。

    自己一直比较懒,虽然觉得大牛应该一个记事本全部搞定,但自己还是喜欢用Dw或者Vs写好网页的架构,因为总觉得用notepad还要自己导入声明,而gVim还没有用顺手,于是今天在down了一个国外的jQuery设计后,自己加以修改,问题就出现了。

    down下来的文档charset=utf-8,于是我手贱的自己修改成为了gb2312,结果杯具就来了,自己添加的所有中文全部乱码,心中怒火一下就烧起,以前也遇到过编码问题,但每次都把文字调整正确后就不究其原因了,但是今天实在忍无可忍,就花了一下午时间,自己琢磨了一下这个问题,现在算有点收获。

     

    先讲解一下记事本另存为的四个编码方式。

    1.ANSI(默认):中文环境下的ANSI编码方式即我们熟悉的GB2312

    2.Unicode:即UTF-16

    3.Unicode big endian:弄了半天还是不懂,只知道是和UTF在编码时有顺序区别。

    4.UTF-8:大名鼎鼎的国际通用UTF-8,个人觉得应该是趋势。因为在web这个环境,样式可以个性,千变万化,但规则应该做到统一.

     

    测试环境:Firefox,IE,Chrome,Opera。

     

    首先我新建了六个html页面,全部用notepad来建立。选择GB2312(即ANSI)和UTF-8两种保存方式作为测试.

    1.用GB2312保存(ANSI)且声明charset=GB2312。

       结果:正常显示.

    2.用GB2312保存(ANSI)且声明charset=UTF-8。

       结果:乱码.

    3.用UTF-8保存且声明charset=UTF-8。

       结果:正常显示.

    4.用UTF-8保存且声明charset=GB2312。

       结果:其他正常显示,只有Firefox乱码。

    5.用GB2312保存(ANSI),但不声明charset。

       结果:正常显示.

    6.用UTF-8保存,但不声明charset。

       结果:正常显示.

     

    总结:我认为charset属性是定义给浏览器接受的,浏览器将直接用从charset接收到的编码方式显示网页,如果不声明,浏览器会检测页面的编码方式。第四点比较特别,用UTF-8保存但声明charset=GB2312后,查看浏览器的编码方式均自动改为为UTF-8,只有Firefox是GB2312,这里我猜测应该是因为Firefox自身只检测charset属性的关系,其他浏览器应该要检测编码方式和charset方属性。

     

    总体来说,要保持两者的一致性。

    另外一些网站也是两种声明都有,百度,QQ都是charset=GB2312,Google,CSDN都是UTF-8,我想这就是差距吧。。。

    哈哈哈哈   ^_^

  • 相关阅读:
    成长篇之代码灵异事件
    idea快捷键
    java环境配置常用链接
    MySQL分区
    English 动词篇
    仿stl+函数模板
    java 数组复制
    拓扑排序(Topological Sorting)
    2017蓝桥杯第十题(k倍区间)
    翻译NYOJ
  • 原文地址:https://www.cnblogs.com/hdk1993/p/8044992.html
Copyright © 2011-2022 走看看