正确理解和使用GBK及UTF-8网页编码

网页编码英文译为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内的标签优先,而后才是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>之前。

时间: 2024-08-15 06:49:22

正确理解和使用GBK及UTF-8网页编码的相关文章

浏览器正确理解和使用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.是用以解决国际上字符的一种

if __name__ == &#39;__main__&#39; 如何正确理解

今天刷知乎,突然看到这个问题,发现很多人都是简单的回答了一下,对于很多人来说,更准确的说应该是大部分的 Python 初学者,这样的回答很容易让人理解.所以这里我来做说一下,希望能把这个问题说明白. 先举一个例子:假设我们有一个add.py文件,里面的代码是这样: def add(a, b):    return a + badd(1,2)#用于测试上面函数是否正常 这里就是一个求两数之和的函数,然后我在另一个文件中调用这个模块,这个时候就会把add(1,2)也运行,但是我是不希望运行add(1

TableViewCell reuse 重用 我认为的正确理解与使用方法

其实有点失望,因为用google搜索“uitableviewcell dequeueReusableCellWithIdentifier”出来一堆堆资深博主的文章.看了看,大部分都是在解决一个问题:使用重用时cell显示混乱的问题.该问题本身并不让我失望,失望的是博主们的解释. 首先,回顾一下UITableViewCell的重用,其基本逻辑就是tableView一开始会创建一屏幕的cell(如果有那么多)并把他们标记(Identifier),之后用户上下滑动tableView时,使用Identi

正确理解Python函数是第一类对象

正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松平常了.但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性.那到底什么是第一类对象呢? 函数是对象 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性

理解并解决GBK转UTF-8奇数中文乱码(转)

最近在做一个反馈功能,把数据反馈到对方公司网站,我公司是GBK编码,对方公司是UTF-8编码.因此,我需要将GBK编码数据转换成UTF-8编码数据,这样对方网站才不会乱码.最简单的方法是将HttpClient的ContentCharset设置为utf-8:如果ContentCharset是gbk并且又不想设置为utf-8,那么就需要将数据转换成UTF-8编码再发到对方网站. 问题出现:GBK转UTF-8时,奇数个中文会乱码,偶数个中文不会乱码.三个中文 Java代码   public stati

正确理解“冬钓阴”和“冬钓阳”

转载请注明文章转载自 光威鱼竿价格表 冬季钓鱼一般都讲究冬钓阳,但是又有一种说法叫做冬钓阴,这里面咋一看有点矛盾,那么怎么来正确理解这两者呢? 先来说说什么是冬钓阴,冬钓阴可不是选择阴天出去钓鱼,在冬天,如果没有太阳的话,一般水面受冷风侵袭,水温会比较低,不大利于鱼的活动和觅食,而另外一些地方,比如岸边有密集树林或者有挡风的围墙等等,这些平时觉得比较阴暗地方的水面由于被挡住了风,所以水温会相对高一些,更适合鱼活动,选择这些个地方垂钓就是所谓的冬钓阴. 冬钓阳,顾名思义就是选择有太阳的日子出去钓鱼

正确理解SQL Server配置timeout相关选项

正确理解SQL Server配置选项"remote login timeout"和"remote query timeout" 查看配置选项的设置 sp_configure 远程登录超时 参考:https://msdn.microsoft.com/en-us/library/ms175136.aspx "The remote login timeout option specifies the number of seconds to wait befor

正确理解 LEAL (Load Effective Address) 指令

LEAL: leal S, D    ->    D ← &S 在 CSAPP (Computer Systems: A Programmer’s Perspective) 中,对 LEAL 指令用作简单算术运算的情况,给出了一个例子: For example, if register %edx contains value x, leal 7(%edx,%edx,4), %eax will set register %eax to 5x + 7. 正确理解逻辑为: 1. 设%edx的值为x

正确理解功率MOSFET的RDS(ON)温度系数特性

通常,许多资料和教材都认为,MOSFET的导通电阻具有正的温度系数,因此可以并联工作.当其中一个并联的MOSFET的温度上升时,具有正的温度系数导通电阻也增加,因此流过的电流减小,温度降低,从而实现自动的均流达到平衡.同样对于一个功率MOSFET器件,在其内部也是有许多小晶胞并联而成,晶胞的导通电阻具有正的温度系数,因此并联工作没有问题.但是,当深入理解功率MOSFET的传输特性和温度对其传输特性的影响,以及各个晶胞单元等效电路模型,就会发现,上述的理论只有在MOSFET进入稳态导通的状态下才能