网页编码英文译为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. 采用Vue2.0开发的分页js组件

    2017-11-17 19:14:23 基于jQuery的分页插件相信大家伙已经都用过很多了,今天分享一下基于Vue2.0的分页插件pagination.js 由于项目需求,要求使用 Vue2.0 开 ...

  2. [转载] Storm:最火的流式处理框架

    转载自http://www.cnblogs.com/langtianya/p/5199529.html 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同 ...

  3. java之JVM学习--基本机构

    JDK,JRE,JVM关系图 JVM物理结构: jvm内存区详解: 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字 ...

  4. Python ---------- Tensorflow (二)学习率

    假设最小化函数 y = x2 , 选择初始点 x0= 5 1. 学习率为1的时候,x在5和-5之间震荡. #学习率为1 import tensorflow as tf training_steps = ...

  5. flex词法解析

    例子1.从标准输入的字数.单词.行数统计 %{ #include <string.h> int chars = 0; int lines = 0; int words = 0; %} %% ...

  6. MySQL子查询优化实例

    优化:子查询改写成关联查询 线上遇到问题,查询较慢,如为对应SQL的查询执行计划: localhost.\G . row *************************** id: select_ ...

  7. Docker(社区版) centos版 安装

    1,总结一下docker的安装,其实官网有很全面的资料了,可以自己上面去看,但都是英文的. https://docs.docker.com/engine/installation/linux/dock ...

  8. "虐待"过我的老师们,你们如今还好吗

    当皇城脚下的民生问题都这么难做的时候,其他地方又该如何保障呢? 京城“红黄蓝”出名了,京城发生锅炉大爆炸了,京城发生火灾了…… 聊天中,有一好友突然蹦出了一句话:“你看在皇城脚下都不安全了”. 久久我 ...

  9. VueJS引入css或者less文件的一些坑

    我们在做Vue+webpack的时,难免会引入各种公共css样式文件,那么我们改如何引入呢?引入时会有那些坑呢? 首先,引入公共样式时,我们在“main.js”里使用AMD的方式引入,即 requir ...

  10. PendingIntent、Notification常用方法

    PendingIntent PendingIntent它的直译是:待处理意图,这样翻译,大家就猜出它的作用是什么了,用于处理一些定义但是不立即使用的意图,最常见的就是用户点击通知,然后跳转指定的页面: ...