`
fuhao200866
  • 浏览: 78497 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字符编码 utf-8 GBK

阅读更多
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包含了很多世界范围内的语言编码(相当于一个大字库) 比如日文 韩文 都可以用。GBK和GB2312只是中文的,相当于包含的汉字个数的多少。为了方便还是用UTF-8比较好。


区别网上有很多,自己查一下吧,编码格式不一样,支持的字符不同,简单说一下原理
字符串都是unicode码,包括英文,汉字...其他字符
unicode可以被转化为字节(byte),如何转换呢,就通过gbk、utf-8、gb2312等编码方式。当把字节转换回字符串的时候,也要用相应的编码方式进行转换。
比如客户端把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编码。
分享到:
评论

相关推荐

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

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

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

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

    c语言gbk、utf8转换编码表及函数

    GBK和UTF-8是两种常见的字符编码格式,它们各有特点并应用于不同的场景。本篇将详细介绍GBK与UTF-8编码的区别,以及如何在C语言中进行这两种编码的转换。 1. **GBK编码** - GBK是中国大陆广泛使用的汉字编码标准,...

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

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

    c++ utf-8转gbk

    本项目针对VS2010和2012两个版本的Visual Studio提供了UTF-8到GBK,以及GBK到UTF-8的转换支持。 首先,`codecvt`库提供了一个接口,通过这个接口可以实现不同字符编码之间的转换。在C++中,它通常被用来处理locale...

    C#写的 GBK GB2312 UTF-8转换

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

    java 编码 UTF-8、ISO-8859-1、GBK

    UTF-8、ISO-8859-1 和 GBK 是三种常见的字符编码格式,每种都有其特定的应用场景和优缺点。 首先,UTF-8 是一种广泛使用的多字节编码,能够表示几乎所有的Unicode字符,包括中文。在Java中,UTF-8 支持国际化,是...

    编码(UTF-8 GBK等等)批量转换

    例如,一个使用GBK编码的文件在UTF-8环境下打开,可能会出现无法识别的字符。因此,“批量转换”功能显得尤为重要,它可以高效地将大量文件从一种编码格式转换为另一种,确保文件内容在不同环境下的正确显示。 ...

    UTF-8与GBK的区别

    使用UTF-8编码的文本可以在世界各国的各种支持UTF-8字符集的浏览器上正确显示,无需用户下载额外的语言包。这对于面向全球用户的网站或应用而言是非常重要的。 #### 四、使用上区分 - **GBK**作为一种中国的国家...

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

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

    C语言字符编码转换UNICODE、GBK、UTF-8互相转换

    总之,C语言虽然没有内置的字符编码转换机制,但通过理解不同编码的原理和使用适当的库或API,可以实现UNICODE、GBK和UTF-8之间的转换。在进行这样的编程时,确保充分理解字符编码的细节,以及处理异常情况的方法,...

    UTF-8与GBK

    UTF-8和GBK是两种广泛使用的字符编码标准,它们各自有其特点和适用场景。 UTF-8(Unicode Transformation Format - 8-bit)是一种变长的字符编码,它可以表示Unicode字符集中的所有字符。UTF-8的优势在于对ASCII...

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

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

    文件编码转换,GBK和UTF-8双向互换,批处理文化方法

    文件包含:gbk2utf-8.bat、utf-82gbk.bat、iconv.exe及使用说明.txt四个文件 使用说明:1把要转换的所有.h和.c文件拷入该目录下,双击相应的bat文件即可。 2转换结果会保存在utf-8Res或gbkRes目录下。 3如果转换除...

    utf-8.rar_c++ string utf-8_string to utf-8_utf_utf 8_utf-8

    在C++编程中,UTF-8编码是一种广泛使用的字符编码标准,它能够表示Unicode字符集中的所有字符。本文将深入探讨如何在C++中处理UTF-8字符串,并介绍相关的关键概念和技术。 首先,C++标准库并没有直接支持UTF-8编码...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    本文将深入探讨PHP中的字符编码转换,特别是针对ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-8+BOM的转换。 首先,让我们了解这些编码格式的含义: 1. ANSI编码:通常指的是Windows系统的默认...

    UTF-8转GBK C语言 Linux

    在这个场景中,我们关注的是在C语言环境下,于Linux系统中实现UTF-8到GBK的字符编码转换,且要求不依赖任何外部库,以确保代码的可移植性。`Utf8ToGbk.c`和`Utf8ToGbk.h`是实现这个功能的核心文件。 UTF-8是一种...

    GBK 与 UTF-8 间编码转换

    GBK 和 UTF-8 是两种常见的字符编码格式,它们各自有其特点和应用场景。本篇文章将详细阐述这两种编码的区别、转换原理以及如何进行转换。 GBK(Great Chinese)编码是中国大陆广泛使用的多字节字符集,它是GB2312...

    GBK与UTF-8转码(C++)

    - **UTF-8**:即“Unicode Transformation Format - 8 bits”,是一种可变长度的字符编码方式,用于表示Unicode字符集。UTF-8编码最大的优点在于兼容ASCII,并且对于英文等拉丁语系的文字占用较少空间,因此被广泛...

    Eclipse项目的GBK编码转为UTF-8插件

    Eclipse是一款广泛使用的Java开发集成环境,而GBK和UTF-8是两种常见的字符编码格式。在处理源代码时,编码的选择至关重要,因为它直接影响到字符的正确显示和处理。GBK编码是中国大陆广泛使用的汉字编码标准,它包含...

Global site tag (gtag.js) - Google Analytics