浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码
网页编码英文译为web page encoding。是在网页中指定其特定的字符编码格式的库。
GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。
GBK的文字编码是用双字节来表示的。即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包括所有中文字符,是国家编码,通用性比UTF8差,只是UTF8占用的数据库比GBK大。 
UTF-8:Unicode TransformationFormat-8bit,同意含BOM,但通常不含BOM。
是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包括全世界全部国家须要用到的字符,是国际编码。通用性强。UTF-8编码的文字能够在各国支持UTF8字符集的浏览器上显示。
假设是UTF8编码,则在外国人的英文IE上也能显示中文。他们无需下载IE的中文语言支持包。 
UTF-8版本号尽管具有良好的国际兼容性,但中文须要比GBK/BIG5版本号多占用50%的数据库存储空间,因此并不是推荐使用,仅供对国际兼容性有特殊要求的用户使用。
简单地说:对于中文较多的站点,适宜用GBK编码节省数据库空间。对于英文较多的站点,适宜用UTF-8节省数据库空间。 
GBK、GB2312等与UTF8怎样转换?GBK、GB2312等与UTF8之间都必须通过Unicode编码才干相互转换:GBK、GB2312——Unicode——UTF8。UTF8——Unicode——GBK、GB2312。使用Windows记事本的“另存为”,能够在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。
怎样让浏览器正确识别网页编码?一般在网页中都要有例如以下一句:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,指示此网页的字符集编码是GB2312。
(或者UTF-8) 
页面有时候指定了编码为什么有时会出现乱码?这可能是页面申明编码与文件本身编码不一致。很多其它时候是以错误编码打开页面然后保存导致的。或者是用某些FTP软件直接在线改动文件,比方CuteFTP,因为软件编码配置错误而导致转换错了编码。这时候使用window的记事本打开,用“另存为”保存为相应的编码就可以解决这个问题。 
在windows操作系统上使用IE作为浏览器时,经常会发生这种问题:在浏览使用UTF-8编码的网页时,浏览器无法自己主动识别该页面所用的编码,即使网页已经声明过编码格式:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />,由此造成某些含有中文UTF-8编码的页面产生空白输出。假设使用的是Firefox、Sarafi的浏览器这不会造成这个问题。
这是因为IE解析网页编码时以HTML内的标签(title)优先。而后才是HTTP
 header内的讯息,而mozilla系列的浏览器则刚刚相反。
因为UTF-8为3个字节表示一个汉子,而普通的GB2312或BIG5是两个。
页面输出时,因为上述原因,使浏览器解析、输出<title></title>的内容时,假设在</title>前有奇数个全角字符,IE把UTF-8当作两个字节解析时出现半个汉字的情况,这时该半个汉字会和</title>的<结合成一个乱码字。导致IE无法读完<title>部分,使整个页面为空百输出,而这个时候假设察看源文件的话,会发现实际上整个页面所有已经输出了,但浏览器不显示内容。最简单的解决的方法是把<meta
 http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 放在<title></title>之前。
浏览器正确理解和使用GBK及UTF-8(UTF-8 + BOM)网页编码的更多相关文章
- Js位置与大小(1)——正确理解和运用与尺寸大小相关的DOM属性
		
在web开发中,不可避免遇到要计算元素大小以及位置的问题,解决这类问题的方法是利用DOM提供的一些API结合兼容性处理来,所有内容大概分3篇左右的文章的来说明.本文作为第一篇,介绍DOM提供的与尺寸大 ...
 - IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
		
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
 - IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
		
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
 - 【转】.NET(C#):浅谈程序集清单资源和RESX资源  关于单元测试的思考--Asp.Net Core单元测试最佳实践  封装自己的dapper lambda扩展-设计篇  编写自己的dapper lambda扩展-使用篇  正确理解CAP定理  Quartz.NET的使用(附源码)  整理自己的.net工具库  GC的前世与今生  Visual Studio Package 插件开发之自动生
		
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
 - 【转】正确理解PHP程序编译时的错误信息
		
我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时, ...
 - 如何正确理解正则表达式中的分隔符 \b
		
前言:好久不见,博客园. 最近在学习研究regex,其中有个特迷惑自己的知识点是分隔符 ( word boundary) [\b] (注:为了方便,后文都以[]来包含字符,并不是reg规则里面的[] ...
 - Java进阶(七)正确理解Thread Local的原理与适用场景
		
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
 - IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
		
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
 - 正确理解CAP定理
		
前言 CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析.因此自己参考部分资料梳理了一篇与大家互相分享一下. 标题 ...
 
随机推荐
- sql分区文件删不的可能解决方法
			
删除数据库分区的时候报错如下: ALTER DATABASE [ITMP2] remove FILE F20170427Msg 5042, Level 16, State 1, Line 1The f ...
 - TextView SpannableString 使用之实现可点击超链接效果
			
TextView SpannableString 使用之实现可点击超链接效果 如果看到这里说明你对 TextView 已经有了一定的了解,至少已经使用过该控件显示文字过.现在来实现一些复杂一点的效果. ...
 - Leetcode刷题
			
Leetcode题库 本博客用于记录在LeetCode网站上一些题的解答方法.具体实现方法纯属个人的一些解答,这些解答可能不是好的解答方法,记录在此,督促自己多学习多练习. The ...
 - [转载] ConcurrentHashMap原理分析
			
转载自http://blog.csdn.net/liuzhengkang/article/details/2916620 集合是编程中最常用的数据结构.而谈到并发,几乎总是离不开集合这类高级数据结构的 ...
 - Spring MVC工作原理
			
1. 客户端请求提交到DispatcherServlet2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller3. Dispat ...
 - 使用webpack配置vue项目代理 (超简单)
			
我们都知道,前端开发跨域是一个很常见的问题,当然跨域的方法也有很多,现在我就给大家分享一个在vue项目中如何使用webpack做代理,步骤简单,操作方便,本人亲测,巨好使
 - http2.4简单配置
			
前言: 上一篇博文说到了http的发展以及http完整请求响应的工作流程. 一.开篇: 从最简单的静态服务器开始. 之前说过,http是应用层协议,必定会在用户空间体现出具体的应用程序.常见的http ...
 - 1455:An Easy Problem
			
传送门:http://noi.openjudge.cn/ch0406/1455/ /-24作业 //#include "stdafx.h" #include<bits/std ...
 - Microsoft SQL Server 2008 R2数据库备份 - 人工备份
			
业务介绍 数据库人工备份是指由相关管理人员通过主动的手工方式备份数据库文件.在一些特殊的时间节点,如重要资料的录入完成.软硬件环境更新前等需要特别关注数据库安全的时候,一定要进行数据库的人工备份,以保 ...
 - 《HelloGitHub》第 20 期
			
前言 HelloGitHub 项目已经累积到 3k+ Stars.本项能够走到今天,帮助到越来越多的人.少不了热爱开源.不断为本项目贡献项目的小伙伴们. 贡献者列表 很多人都有想法,付诸于行动在少数, ...