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

自己一直比较懒,虽然觉得大牛应该一个记事本全部搞定,但自己还是喜欢用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,我想这就是差距吧。。。

哈哈哈哈   ^_^

关于烦躁的网页编码问题utf-8,gb2312。终于自己实践了一遍的更多相关文章

  1. windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码

    原文:windows phone 7,sliverlight 下载网页的解析,关于wp7 gb2312编码 关于silverlight和wp7(windows phone 7)是默认不支持gb2312 ...

  2. [Python网络编程]gevent httpclient以及网页编码

    之前看到geventhttpclient这个项目,https://github.com/gwik/geventhttpclient,官方文档说非常快,因为响应使用了C的解析,所以我一直想把这玩意用到项 ...

  3. spider JAVA如何判断网页编码 (转载)

    原文链接 http://www.cnblogs.com/nanxin/archive/2013/03/27/2984320.html 前言 最近做一个搜索项目,需要爬取很多网站获取需要的信息.在爬取网 ...

  4. 浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码

    网页编码英文译为web page encoding.是在网页中指定其特定的字符编码格式的库. GBK是国家标准GB2312基础上扩容后兼容GB2312的标准. GBK的文字编码是用双字节来表示的.即不 ...

  5. HTML实体与网页编码(汉字转化为了html实体) .

    http://blog.csdn.net/f438952359/article/details/7481267 HTML实体与网页编码(汉字转化为了html实体) . htmlencodingfunc ...

  6. 解决Chrome网页编码显示乱码的问题

    解决Chrome网页编码显示乱码的问题 记得在没多久以前,Google Chrome上面出现编码显示问题时,可以手动来调整网页编码问题,可是好像在Chrome 55.0版以后就不再提供手动调整编码,所 ...

  7. Linux apache让网页编码错误

    今天帮一个小伙伴搞作业,遇到安装discuz乱码问题,就顺便在这里写一下,以供其他同学纠正. 开apache配置文件/etc/httpd/conf/httpd.conf 查找AddDefaultCha ...

  8. 【真相揭秘】requests获取网页编码乱码本质

    有没有被网页编码抓狂,怎么转都是乱码. 通过查看requests源代码,才发现是库本身历史原因造成的. 作者是严格http协议标准写这个库的,<HTTP权威指南>里第16章国际化里提到,如 ...

  9. C#获取文本文件的编码,自动区分GB2312和UTF8

    C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// < ...

随机推荐

  1. 081 Region的预分区

    1.预分区的方式 共有四种方式 2.帮助信息 help 'create' 3.第一种方式 4.在页面上查看效果(端口号:60010) 5.第二种方式 )创建文件,并在文件中书写分区的值 )创建表 6. ...

  2. C# 反编译防范

    C# 编写的代码通过VS编译器生成 dll 或 exe ,很容易被一些反编译工具查看到源码或对源码进行修改.为防止代码被反编译或被篡改,我们可以进行一定的防范措施.但不能杜绝,因为DotNet编写代码 ...

  3. 【猿分享第10期】微信小程序Meetup扫盲专场回顾(转载)

    首先感谢答疑师:子慕 前端工程师,目前就职于医联,偶尔写点博客,吐槽总结,偶尔吟“湿”作对,润滑万物,江湖人称子慕大诗人. 直播间语音回放收听,请微信扫描下图二维码授权进入即可. 以下为本次直播的全部 ...

  4. unity与安卓通讯的一些事儿

    1.unity与安卓通讯的两种方法: 第一种是unity导出安卓工程,在unity的BuildSetting窗口可以将unity工程导出为安卓工程,然后再用Eclipse或者Android Studi ...

  5. POJ.2750.Potted Flower(线段树 最大环状子段和)

    题目链接 /* 13904K 532ms 最大 环状 子段和有两种情况,比如对于a1,a2,a3,a4,a5 一是两个端点都取,如a4,a5,a1,a2,那就是所有数的和减去不选的,即可以计算总和减最 ...

  6. python——append与extend

    编者注:本文主要参考了<Python核心编程(第二版)> 网上有很多对这两个函数的区别讲解,但我觉得都讲的不是很清楚,记忆不深刻.这样解释清楚且容易记住. list.append(obje ...

  7. Android避免快速双击按钮最简单好用的方式

    代码如下,直接放到工具类中即可.类可以实现Onclicklistener,然后重写onClick方法,直接将该函数写在onClick方法中即可,这样对于所有的点击事件都将生效. 避免了快速双击出现的异 ...

  8. 2016年3月16日Android学习笔记

    1.Jdk1.7以上switch语句中才能用字符串,在Android Studio中我改正了jdk的版本为1.8,但是还是出同样的错误,原来我用的sdk版本是4.4的,改成5的就没有问题了. 2.引入 ...

  9. IBM Thread and Monitor Dump Analyzer for Java解决生产环境中的性能问题

    这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca ...

  10. python测试开发django-47.xadmin上传图片和文件

    前言 xadmin上传图片和上传文件功能 依赖环境 如果没安装Pillow的话,会有报错:practise.Upload.upload_image: (fields.E210) Cannot use ...