ASCII:
由于计算机是美国人发明的,因此最早只把127个字符编码到计算机里,即大小写英文字母、数字、部分西欧字符和一些常用符号等。
ASCII码只需要1个字节(1byte=8bit)即可存放。
Unicode:
如果想要处理非ASCII码表里的字符,显然1个字节是不够用的,因此,中国将中文字符编入了GB2312,日本将日文编入了Shift-JIS、韩国将韩文编入了Euc-kr,其他国家也有自己的编码,这样做的结果就是如果将含有多种编码格式的字符存放到同一个文本里,就会出现令人头痛的乱码问题(乱码问题本质就是解码的字典不同导致的。)
鉴于上述原因,Unicode应运而生,它将所有字符都统一编入在一个字典里,通常用2个字节表示一个字符(部分生僻字符可能会用4个字节表示),这样再也不用担心不同的字符集里的字符放在一起出现乱码的问题了。
Unicode和ASCII的区别就是:前者是用2个字节表示一个字符,后者是用1个字节表示的。
UTF-8:
Unicode的出现似乎完美的解决了乱码问题,但是会带来一个新的问题:如果你的文本基本全是英文或数字,那么用Unicode存储会比ASCII存储多出1倍的空间,而且传输起来也不划算(要占用更多的带宽),怎么办呢?能不能根据字符的种类来决定采取占用的字节呢?
回答是可以的,这就是UTF-8,也就是“可变长编码”,它能根据Unicode字符的种类来决定存储的长度,例如:常用的英文编码成1个字节,汉字编码成3个字节(生僻字除外)。例如:
如果你的文本里含有大量的英文字符、数字、常用符号,那么使用UTF-8将会节省大量的存储空间,传输起来也会快很多。
GB2312和GBK:
GB2312是中国自己发布的一套汉字编码规范,于1980年发布。而GBK是中国在1995年颁布的,它向下兼容了GB2312,还向上兼容了ISO国际标准,包含的字符更多了。
附录:英文字符和中文字符在各字符集占用的字节数
英文字母:
字节数 : 1;编码:GB2312
字节数 : 1;编码:GBK
字节数 : 1;编码:GB18030
字节数 : 1;编码:ISO-8859-1
字节数 : 1;编码:UTF-8
字节数 : 4;编码:UTF-16
字节数 : 2;编码:UTF-16BE
字节数 : 2;编码:UTF-16LE
中文汉字:
字节数 : 2;编码:GB2312
字节数 : 2;编码:GBK
字节数 : 2;编码:GB18030
字节数 : 1;编码:ISO-8859-1
字节数 : 3;编码:UTF-8
字节数 : 4;编码:UTF-16
字节数 : 2;编码:UTF-16BE
字节数 : 2;编码:UTF-16LE
相关推荐
### UTF-8、Unicode、GBK、GB2312 编码之间的区别和联系 #### 一、引言 在互联网技术中,字符编码是非常重要的基础概念之一。字符编码不仅决定了文本在网络上的传输效率,还直接影响到了不同国家和地区用户访问...
标签中的"_utf-8togb2312 utf-8_gb2312 gb2312 mmi_chset utf__gbk"进一步强调了这个类库的核心功能,即UTF-8到GB2312的转换,以及可能存在的GBK编码支持。GBK是GB2312的扩展,包含更多的汉字和其他字符,因此这个类...
本文将从头讲解编码的故事,包括 Unicode、Ascii、utf-8、GB2312、GBK 等编码标准的由来和发展。 首先,让我们从基本的概念开始。计算机使用字节来存储信息,而字节是由 8 个可以开合的晶体管组合成的。这些字节...
UTF-8的优势在于对ASCII字符集的兼容性,前128个Unicode字符(包括英文、数字和常见符号)只需要一个字节表示,这使得UTF-8在互联网上广泛使用,因为其与ASCII的兼容性可以减少传输数据量。此外,UTF-8也支持全球大...
在标题和描述中提到的“批量转 GBK 转 UTF-8”、“gb2312 转 UTF-8”以及“Iso-8859-1 转 UTF-8”是指将使用这些编码格式的文件转换成UTF-8编码。这是因为UTF-8具有广泛的兼容性和通用性,许多系统和软件默认使用UTF...
首先,我们需要将UTF-8编码的字符串解码为Unicode,然后将Unicode转换为GB2312编码。反之,从GB2312转到UTF-8也是同样的逻辑,只是方向相反。 在Python编程语言中,我们可以使用`encode()`和`decode()`方法进行转码...
GBK、GB2312和UTF-8是三种常见的字符编码标准,每种都有其特定的应用场景和特点。C#作为.NET框架下的主要编程语言,提供了丰富的类库支持对不同编码格式之间的转换。 1. **GBK编码**:GBK是中国大陆广泛使用的汉字...
GB2312和UTF-8是两种不同的字符编码标准,它们各自有其特点和适用范围。本资源提供了一个C语言实现的GB2312到UTF-8的转换函数,方便开发者在需要进行这种编码转换时使用。 GB2312是中国大陆早期广泛使用的简体中文...
本文将深入探讨几种常见的编码格式,如GB2312、UTF-8以及UTF-8-BOM,并详细讲解如何在C#中进行这些编码格式之间的转换,同时会涉及到与Stream相关的操作。 GB2312,全称为“国标汉字编码字符集”,是中国大陆广泛...
常见的字符编码有ASCII、GB2312、GBK、Big5和UTF-8等。 - **GB2312**:全称为“汉字机内码”,是中国大陆最早的一种简体中文字符集,主要包含常用汉字和部分符号,总共6763个字符。 - **GBK**:是GB2312的扩展...
这个压缩包文件"UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_源码.zip"主要涉及到两个常见的字符编码格式:UTF-8和GBK,以及如何在LabVIEW环境下进行编码转换。LabVIEW是美国国家仪器(NI)开发的一种图形化...
### UTF-8、GBK、GB2312的区别 在计算机科学领域,字符编码是将文字转换为二进制数字以便计算机处理的过程。常见的字符集包括UTF-8、GBK、GB2312等,它们各有特点,在不同的场景下被广泛应用。 #### GB2312编码 *...
### UTF-8与GBK及GB2312的区别 #### 一、引言 随着互联网技术的发展和全球化的深入,不同国家和地区之间的信息交流日益频繁。为了满足这种需求,多种字符编码标准应运而生,其中UTF-8、GBK和GB2312是中文环境中最...
### JAVA字符编码详解:Unicode, ISO-8859-1, GBK, UTF-8 及其相互转换 #### 一、引言 在Java编程中,字符编码的管理和转换是一项基本而又重要的任务。不同的编码标准适用于不同的场景,而理解和掌握这些编码之间...
本工具涵盖了三种主要的汉字编码格式:UTF-8、GBK(GB2312)以及Unicode,它们各自有其特点和使用场景。 首先,UTF-8是一种变长的Unicode编码,广泛应用于互联网和现代操作系统。它使用1到4个字节来表示一个字符,...
转换“pb12 gb转utf-8”意味着你可能有一个使用PowerBuilder 12编写的程序或数据库,其中的数据是以GBK编码存储的,现在需要将这些数据转换为UTF-8编码以便在更广泛的环境中使用或与其他系统进行兼容。 这个过程...
UTF-8、GBK(GB2312)和Unicode是三种常见的字符编码标准,它们各有特点,但也有各自的适用场景。 首先,UTF-8是一种变长的 Unicode 字符编码,它广泛应用于互联网和现代操作系统中。UTF-8的优点在于它可以完美兼容...
UTF-8到GBK需要查找对应的GBK编码,GBK到UTF-8则需找到对应的Unicode码点再转换为UTF-8字节序列。 4. 错误处理:在转换过程中可能会遇到非法的字节序列,需要决定如何处理,如忽略、替换或抛出错误。 在"utf2gbk"这...
主要的过程可以分为两个步骤:首先从GBK转换到Unicode,然后从Unicode转换到UTF-8。 1. GBK转Unicode: - GBK编码中,每个字符由两个字节组成,我们可以遍历输入的GBK字符串,每次取两个字节作为GBK编码值。 - ...
- **非ASCII字符的处理**:UTF-8编码的非ASCII字符在GBK中可能找不到对应的表示,这会导致转换失败。 - **字节序问题**:Unicode是大端序或小端序表示,需要确保转换时正确处理字节顺序。 - **非法字节序列**:UTF-8...