网页编码英文译为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)网页编码的更多相关文章

  1. Js位置与大小(1)——正确理解和运用与尺寸大小相关的DOM属性

    在web开发中,不可避免遇到要计算元素大小以及位置的问题,解决这类问题的方法是利用DOM提供的一些API结合兼容性处理来,所有内容大概分3篇左右的文章的来说明.本文作为第一篇,介绍DOM提供的与尺寸大 ...

  2. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  3. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  4. 【转】.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 ...

  5. 【转】正确理解PHP程序编译时的错误信息

    我们编写程序时,无论怎样小心谨慎,犯错总是在所难免的.这些错误通常会迷惑PHP编译器.如果开发人员无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧. 编译PHP脚本时, ...

  6. 如何正确理解正则表达式中的分隔符 \b

    前言:好久不见,博客园. 最近在学习研究regex,其中有个特迷惑自己的知识点是分隔符 ( word boundary) [\b] (注:为了方便,后文都以[]来包含字符,并不是reg规则里面的[] ...

  7. Java进阶(七)正确理解Thread Local的原理与适用场景

    原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

  8. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...

  9. 正确理解CAP定理

    前言 CAP的理解我也看了很多书籍,也看了不少同行的博文,基本每个人的理解都不一样,而布鲁尔教授得定义又太过的简单,没有具体描述和场景案例分析.因此自己参考部分资料梳理了一篇与大家互相分享一下. 标题 ...

随机推荐

  1. Docker简介和安装

    1.Docker 和传统虚拟化方式的不同之处 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程: 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核 ...

  2. 40个Java多线程问题

    1.多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡.所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然 ...

  3. Maven中settings.xml的配置项说明精讲

    1.Maven的配置文件(Maven的安装目录/conf/settings.xml ) 和 Maven仓库下(默认的Maven仓库的是用户家目录下的.m2文件,可以另行制定)的settings.xml ...

  4. EF错误

    The model backing the 'XXXXDBContext' context has changed since the database was created. Either man ...

  5. node使用buffer生成图片

    buffer是node里的一个模块,这个模块的出现是因为js没有阅读和操作二进制数据流而出现的 buffer是什么及作用? Buffer顾名思义叫缓冲区,用于存储速度不同步的设备或优先级不同的设备之间 ...

  6. [转载] 基于Dubbo框架构建分布式服务

    转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务 ...

  7. python基础(一)------Python基础语法与介绍

    编程语言的历史和Python开发 一.编程语言 1.编程语言也是"语言"与英语,汉语等类似,掌握其语法结构,灵活 的运用其语法规则为之重要.          编程语言实现的是程序 ...

  8. [转]Android应用安装包apk文件的反编译与重编译、重签名

    背景介绍: 最近在做Robotium自动化测试,使用到solo.takeScreenshot()函数以在测试过程中截图,但此函数需要被测试APP具有<uses-permission androi ...

  9. 用MVC导入导出

    导入导出对于刚做的人一脸懵逼,但是明白思路之后就感觉非常容易,我也是研究了好久,才总算做了出来,放在这里给大家分享一下 一.先看下导出 视图脚本 <script type ="text ...

  10. 关于iOS GangSDK的使用,为App快速集成社群公会模块

    手上有一个自己开发的小游戏,想加一个家族系统活跃下游戏的氛围,想到这块儿可能会有大量的工作需要自己做,就偷了个懒去网上搜罗了一波,结果惊奇的发现居然真的有类似的服务,并且还是免费的,所以决定入坑尝试一 ...