GBK就是在保存你的帖子的时候,一个汉字占用两个字节,外国人看会出现乱码,为此我中华为自己汉字编码而形成之解决方案。

  UTF8就是在保存你的帖子的时候,一个汉字占用3个字节。但是外国人看的话不会乱码。为此西人为了解决多字节字符而形成之解决方案。

  ASCII(ISO-8859-1)是鼻祖,最简单的方式,字节高位为0

  GB2312、GBK、GB18030,这几个是中文编码方式,并向下兼容。GB2312包含7000多个汉子和字符,GBK包含21000多个,GB18030更厉害,到了27000多个。他们都是用2个字节来表示一个汉字。跟ASCII是怎么区分的呢?如果高字节的高位为1(也就是高字节大于127),就表示是汉字,低字节并无明显特征。

  Unicode是统一编码,它建立了一个全世界统一的码表。世界上的所有文字,在这张码表中都是唯一的。

  UTF-8是Unicode的一种存储、传输方式。它将整个Unicode码表分为3部分。

  0000 - 007F 这部分是最初的ascii部分,按原始的存储方式,即0xxxxxxx。

  0080 - 07FF 这部分存储为110xxxxx 10xxxxxx

  0800 - FFFF 这部分存储为1110xxxx 10xxxxxx 10xxxxxx

  因此,一个汉字究竟被存储为什么,就需要:先查unicode码表,然后根据在码表的位置进行计算。例如:“电”字,在码表中是3575,计算成utf8就是E794B5,而在GB2312的码表中为B5E7

  UTF-8的好处:兼容ASCII,存储英文文件都是单字节,文件小。当然,当以存中文为主时就变成了3字节编码了,比GB系列还大!如何标明一个文件是utf8格式呢?这个标记是可选的:EF BB BF。比如,用windows自 带的记事本创建一个utf8格式的文件,就会加上这个标记。但是,如果用ultraedit创建utf8文件,并不会加上这个标记。这个标记有个术语,叫 做BOM(Byte Order Mark)。不带BOM的utf8文件和GB2312文件怎么区分呢?我也不知道。唯一能想到的办法就是:先用一种试,如果出现乱码,就用另一种再试

  UTF-16是双字节存储,这就带来一个问题,即高低字节的顺序。两个字节有两种顺序,它们也用BOM来标明。分为大尾码和小尾码两种。大尾码的BOM是FEFF,小尾码的BOM是FFFE

  GBK 的中文编码是双字节来表示的,英文编码是用ASC||码表示的,既用单字节表示。但GBK编码表中也有英文字符的双字节表示形式,所以英文字母可以有2种GBK表示方式。为区分中文,将其最高位都定成1。英文单字节最高位都为0。当用GBK解码时,若高字节最高位为0,则用ASC||码表解码;若高字节最 高位为1,则用GBK编码表解码

  至于UTF-8编码则是用以解决国际上字符的一种多字节编。码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。

  GBK包含全部中文字符,UTF-8则包含全世界所有国家需要用到的字符。

GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)

UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。

比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。

所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

但是如果UTF8中出现中文那就是3个字节~~具体的自己权衡。

转自:http://blog.163.com/cmdbat@126/blog/static/17029212320135297400353/

GBK UTF8 GB2132的更多相关文章

  1. 字符编码-UNICODE,GBK,UTF-8区别【转转】

    字符编码介绍及不同编码区别 今天看到这篇关于字符编码的文章,抑制不住喜悦(总结的好详细)所以转到这里来.转自:祥龙之子http://www.cnblogs.com/cy163/archive/2007 ...

  2. PHP GBK UTF8互转

    function gbk_to_utf8($str){     return mb_convert_encoding($str, 'utf-8', 'gbk'); }   function utf8_ ...

  3. 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换

    http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...

  4. 关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    我们最初学习计算机的时候,都学过ASCII编码. 但是为了表示各种各样的语言,在计算机技术的发展过程中,逐渐出现了很多不同标准的编码格式, 重要的有Unicode.UTF.ISO-8859-1和中国人 ...

  5. unicode gbk utf-8的差异

    GB2312(1980年)定义,包含6763个汉字,682个字符 GBK1.0 定义了21003个汉字,21886个字符 ASCII->GB2312->GBK 编码方式向后兼容,即同一个字 ...

  6. Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换(转载)

    第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换 1.函数介绍在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两 ...

  7. 多字节(一般指GBK) utf8 Unicode 编码互转

    // c:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinNls.h #define CP_ACP 0 // default to ANS ...

  8. GBK,UTF-8,和ISO8859-1之间的编码与解码

    Unicode.UTF-8 和 ISO8859-1到底有什么区别 将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicod ...

  9. 下载论坛源码GBK UTF8 BIG5分别是什么意思

    下载论坛源码GBK UTF8 BIG5分别是什么意思? 提问者:ly1987520 | 浏览次数:4010次 下载论坛源码简体中文GBK 简体中文UTF8 繁体中文BIG5 分别是什么意思?他们的区别 ...

随机推荐

  1. JS绑定事件和移除事件的处理方法

    addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件 ...

  2. Oracle数据库SQL语句操作大全汇总

    数据库各个表空间增长情况的检查: SQL >SELECT A.TABLESPACE_NAME,( 1-(A.TOTAL)/B.TOTAL)* 100 USED_PERCENT FROM (SEL ...

  3. Cause: java.sql.SQLException: 无法转换为内部表示(Mybatis)

    公司开发档案系统使用框架:Spring+Struts2+Mybatis+EasyUI,在开发过程中出现sql异常:“Cause: java.sql.SQLException: 无法转换为内部表示”,错 ...

  4. SpringBoot | 第四章:日志配置(转)

    前言 介于平时工作中,对于日志这块没有过多的接触,也就未有过多的了解.故在编写本文时,上官网查看了相关资料,奈何每个字母我都认识,但合起来就有点晕了,英文阅读水平还是有待大大的提高呀.最后觉得还是转载 ...

  5. java数据结构和算法07(2-3-4树)

    上一篇我们大概了解了红黑树到底是个什么鬼,这篇我们可以看看另外一种树-----2-3-4树,看这个树的名字就觉得很奇怪.... 我们首先要知道这里的2.3.4指的是任意一个节点拥有的子节点个数,所以我 ...

  6. java(itext) 一个很简单的PDF表格生成工具

    先上个效果图 因为做的项目涉及到数据预测,其中有大量打印业务来支撑实体店的运营,因为注重的是数据,要求简洁,清晰,所以写了个很简单也很实用的工具类. 如果需要编写样式或者插入背景,都可以查阅itex官 ...

  7. js 数组对象去重

    let hash = {}; let config = [ { name: 2, state: true, output: 'Y'}, { name: 3, state: true, output: ...

  8. codevs 1664 清凉冷水

    1664 清凉冷水 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold         题目描述 Description 闷热的夏天,威斯康辛州的奶制品地区提供冷水供奶牛 ...

  9. $.ajax防止多次点击重复提交的方法

    第一种:使用$.ajaxPrefilter( [dataTypes], handler(options, originalOptions, jqXHR) ) 方法:$.ajaxPrefilter()方 ...

  10. 前端Json数据模拟神器mockJs使用教程

    一般项目做法: <html> <head> <script src="http://requirejs.org/docs/release/2.1.16/comm ...