`
morning2008
  • 浏览: 115260 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

字符编码 GB2312 GBK UTF-8 区别

 
阅读更多
本文来自:javaeye网站

UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛

GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大~

提示:如果您的网站客户群体主要是面向国内用户的,建议使用GBK版本,因为它可以节省空间,及相对utf-8版本来讲稳定一些。
对于DZ论坛来说,很多插件都只支持GBK的,如果需要装较多插件的论坛还是用GBK比较好,而对装较少插件且有特殊用户群的论坛用UTF8比较好。

GBK版本与UTF-8版本功能是一样的.只不过编码方式不同。

GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。

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

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

GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准,UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。 所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

简单的说 UTF-8包含了很多世界范围内的语言编码(相当于一个大字库) 比如日文 韩文 都可以用。GBKGB2312只是中文的,相当于包含的汉字个数的多少。为了方便还是用UTF-8比较好。

区别网上有很多,自己查一下吧,编码格式不一样,支持的字符不同,简单说一下原理
字符串都是unicode码,包括英文,汉字...其他字符
unicode可以被转化为字节(byte),如何转换呢,就通过gbkutf-8gb2312等编码方式。当把字节转换回字符串的时候,也要用相应的编码方式进行转换。
比如客户端把unicode码通过utf-8转换为二进制流(也就是字节byte),而到了服务器端用gbk编码来把这个二进制流转换为字符串(unicode)的时候,就会出现乱码。必须也要用相应的编码方式进行转换。

gbk(encode) gbk(decode)
unicode---------------->byte[]------------------------------>unicode
String 二进制流 String

通用转换格式UTF(Universal Transformation Format)
UTF-8是UNICODE的一种变长字符编码

GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,
并涵盖了原Unicode中所有的汉字20902
GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准

GB 2312或GB 2312-80是一个简体中文字符集的中国国家标准
GB 2312标准共收录6763个汉字

区别很简单,不同的字符集。


什么叫字符集,其实就是一张对照表。"啊"字对应UNICODE编码就是"554A",对应的GBK编码是"B0A1".
什么是对照表呢,简单举个例子,就是班级的点名册,"张三"对应10号。计算机不能存储"张三",就存储个"10",取出一个10,按对照表一查,返回一个"张三"。
但是在全学校的点名册里,"张三"对应15号。不同的点名册就是不同的字符集。

现在你把"10"存进去了,取出来后,按照班级点名册取出了"张三",很正确,如果用了全学校的点名册,返回给你个外国人,假设你不认识英文,你就觉得乱码了,其实没乱,你可以把它返回成10,再用班级点名册去对照,"张三"不就出来了。注意:如果全学校的点名册里没有10对应的人,按照约定就返回给你"????",这个时候才真的乱码了,返回不了了。

不同的点名册,就是不同的字符集。GB2312是一个点名册,后来班里又插班进来俩学生,GB2312加俩学生,老师说,点名册不一样了,换个名吧,叫GBK好了。

中国有个学生叫"张三",在中国是"10"号,后来出国了,联合国给他个号"20"号,一个GBK,一个UTF8,但都是一个人,对应不同的号而已。

ps:UTF-8是UNICODE的变种,从UNICODE编码可以计算出一个字对应的UTF-8编码。

分享到:
评论

相关推荐

    编码转换器 绿色版 gb2312 gbk utf-8

    常见的字符编码有ASCII、GB2312、GBK、Big5和UTF-8等。 - **GB2312**:全称为“汉字机内码”,是中国大陆最早的一种简体中文字符集,主要包含常用汉字和部分符号,总共6763个字符。 - **GBK**:是GB2312的扩展...

    GB2312转UTF-8(C代码)

    GB2312和UTF-8是两种不同的字符编码标准,它们各自有其特点和适用范围。本资源提供了一个C语言实现的GB2312到UTF-8的转换函数,方便开发者在需要进行这种编码转换时使用。 GB2312是中国大陆早期广泛使用的简体中文...

    C#写的 GBK GB2312 UTF-8转换

    GBK、GB2312和UTF-8是三种常见的字符编码标准,每种都有其特定的应用场景和特点。C#作为.NET框架下的主要编程语言,提供了丰富的类库支持对不同编码格式之间的转换。 1. **GBK编码**:GBK是中国大陆广泛使用的汉字...

    gb2312,utf-8,utf-8-bom等编码格式的互相转换

    本文将深入探讨几种常见的编码格式,如GB2312、UTF-8以及UTF-8-BOM,并详细讲解如何在C#中进行这些编码格式之间的转换,同时会涉及到与Stream相关的操作。 GB2312,全称为“国标汉字编码字符集”,是中国大陆广泛...

    GB2312编码和UTF-8互转(c语言实现)

    GB2312编码与utf-8编码的字符串的转换,主要使用windows api函数MultiByteToWideChar和WideCharToMultiByte,代码简洁,经测试可用

    gb2312转utf-8

    总的来说,从GB2312到UTF-8的转换是一项基础的文本处理任务,涉及到字符编码的理解和转换算法的实现。通过提供的源代码,我们可以学习到如何在C语言环境中处理字符编码问题,这对于理解和开发跨平台的文本处理软件...

    utf-8 互转 gb2312 转码

    "UTF-8"和"GB2312"是两种常见的字符编码标准,它们各自有不同的历史背景和应用场景。 UTF-8(8位Unicode转换格式)是一种广泛使用的多字节字符编码方案,它兼容ASCII编码并能表示Unicode字符集中的所有字符。UTF-8...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    UTF-8和GBK是两种常见的字符编码格式,它们各有特点,适用于不同的场景。本篇文章将详细探讨UTF-8与GBK编码,以及如何在LabVIEW环境下进行这两种编码之间的转换。 首先,UTF-8(Unicode Transformation Format - 8 ...

    字符编码:GBK、GB2312、UTF-8

    本文主要讨论了三种常见的字符编码:GBK、GB2312以及UTF-8。 首先,GBK编码是基于GB2312标准的扩展,兼容GB2312,是中国大陆广泛使用的编码系统。GBK使用双字节来表示所有字符,对于中文字符,其最高位被设置为1,...

    批量转 GBK 转 UTF-8 gb2312 Iso-8959-1 转 UTF-8

    GBK、GB2312、ISO-8859-1和UTF-8是四种常见的字符编码标准,每种都有其特定的应用场景和特点。让我们深入探讨这些编码系统以及如何进行批量转换。 首先,GBK(Great Chinese Background)是中国大陆广泛使用的字符...

    UTF-8 Unicode GBK GB2312 编码之间的区别和联系

    本文将详细介绍UTF-8、Unicode、GBK以及GB2312这几种常见的字符编码方式,并探讨它们之间的区别与联系。 #### 二、基础知识 在深入讨论之前,我们需要先理解几个基本概念: 1. **字符编码**:是一种系统化的规则...

    GB2312-UTF-8编码批量转换

    在IT行业中,字符编码是...总之,"GBK-GB2312-UTF-8编码批量转换"是针对中文字符编码的兼容性问题,通过自动化工具或编程实现,确保文本在不同环境下的正确展示和传输。理解和掌握这些知识点对于处理中文数据至关重要。

    GBK GB2312 UTF-8 ISO-8859-1区别

    字符编码标准之GBK、GB2312、UTF-8和ISO-8859-1的比较 字符编码标准是计算机领域中的一项基本技术,用于将文字或符号转换为计算机能够识别的二进制代码。常见的字符编码标准有GBK、GB2312、UTF-8和ISO-8859-1等,...

    VB6.0 UTF-8转换GB2312函数

    在VB6.0编程环境中,有时我们需要处理不同字符编码之间的转换,例如将UTF-8编码的字符串转换为GB2312编码。UTF-8是一种广泛使用的Unicode编码,而GB2312是中国大陆常用的简体中文字符集,主要用于早期的计算机系统。...

    GBK GB2312转UTF-8工具

    "GBK GB2312转UTF-8工具"正是为了解决这类问题而设计的,它能够帮助用户批量地将GBK或GB2312编码的文件转换成更通用的UTF-8编码。 GBK编码是GB2312的扩展,全称为“汉字内码扩展规范”,在中国大陆广泛使用,它包含...

    判断字符串编码是utf-8还是gb2312

    判断字符串编码是utf-8还是gb2312 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。 2、文本编辑器:Sublime 3。 二、主要技术 本案例主要使用PHP通过对字符的ASCII码值进行判断,从而...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip

    这个压缩包文件"UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip"主要涉及到两个常见的字符编码格式:UTF-8和GBK,以及如何在LabVIEW环境下进行编码转换。LabVIEW是美国国家仪器(NI)开发的一种图形化...

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

    ### JAVA字符编码详解:Unicode, ISO-8859-1, GBK, UTF-8 及其相互转换 #### 一、引言 在Java编程中,字符编码的管理和转换是一项基本而又重要的任务。不同的编码标准适用于不同的场景,而理解和掌握这些编码之间...

    项目编码修改, GBK 变UTF-8 , 全格式转UTF-8, 编码转utf-8

    请使用这款软件,直接将代码转换为UTF-8 注意: 1、xml不需要转换,因为xml默认是utf-8,在你新建的时候已经是正确的格式了 2、图片更不需要转换 3、bin目录,gen目录的直接忽略 4.只需要src目录的代码转换,请确保...

    汉字编码转换工具(汉字与utf-8转换 gb2312转换 unicode 转转

    本工具涵盖了三种主要的汉字编码格式:UTF-8、GBK(GB2312)以及Unicode,它们各自有其特点和使用场景。 首先,UTF-8是一种变长的Unicode编码,广泛应用于互联网和现代操作系统。它使用1到4个字节来表示一个字符,...

Global site tag (gtag.js) - Google Analytics