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

自己一直比较懒,虽然觉得大牛应该一个记事本全部搞定,但自己还是喜欢用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. 026 使用大数据对网站基本指标PV案例的分析

    案例: 使用电商网站的用户行为日志进行统计分析 一:准备 1.指标 PV:网页流浪量 UV:独立访客数 VV:访客的访问数,session次数 IP:独立的IP数 2.上传测试数据 3.查看第一条记录 ...

  2. SQL基本练习

    .sql对大小写不敏感 .sql执行顺序select--from--where--group by--having--order by .SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号) ...

  3. vs2017下发现解决python运行出现‘No module named "XXX""的解决办法

    对于使用vs2017开发python程序无疑发现,在解决方案资源管理器中设置把两个xxx.py,yyy.py文件都设置为启动文件,然后分别在vs2017这个IDE下运行这个两个文件在项目工程中运行,发 ...

  4. iOS 技术篇:如何处理多个网络请求的先后(依赖)关系

    在开发过程中,不知你有没有碰到过在一个页面 用到了多个网络请求,而且根据业务需求,需要有次序的执行A B C 网络请求? 你可能会想到,我在A的请求成功回调里去处理B,在B的回调里去请求C,但你后来会 ...

  5. BufferedReader的小例子

    注意: BufferedReader只能接受字符流的缓冲区,因为每一个中文需要占据两个字节,所以需要将System.in这个字节输入流变为字符输入流,采用: BufferedReader buf = ...

  6. FastDFS_v4.06安装简记

    提前准备所需4个包:FastDFS_v4.06.tar.gzfastdfs-nginx-module_v1.16.tar.gzlibevent-2.0.20-stable.tar.gznginx-1. ...

  7. php中对Mysql数据库的访问操作

    一:  PHP-MySQL 是 PHP 操作 MySQL 资料库最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相对进阶的功能,就 Extensio ...

  8. JavaScript:谈谈let和const

    最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之处,我们就先说一说let吧. 1. let添加了块级作用域 ...

  9. redis 在 php 中的应用(Connection [ 连接] 篇)

    本文为我阅读了 redis参考手册 之后编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) 目录: Connection(连接) AUTH ECHO PING ...

  10. 异步处理XML异步数据——以原生的JavaScript与jQuery中的$.ajax()为例

    此文档解决以下问题: 一.原生的JavaScript从服务器端输出XML格式数据 1.XMLHttpRequest对象的运用 XMLHttpRequest对象的open()方法 XMLHttpRequ ...