今天无意中看到字符集与编码的文章,仔细研读了下,对这些字符编码方案了解了不少,一些概念也清晰很多了,特记下以备查用,也以此为我的JE博客中开篇文章。
下面罗列下我对这些字符编码的理解:
ASCII: 单字节定长编码方案。主要针对英文字符。只用到了低7位,高位为0。以前学C的时候老师常提。
ISO8859-1:单字节定长编码方案。西欧语系国家通用的字符集编码。ASCII编码在西欧国家并不通用。针对这个问题ISO在ASCII编码的基础上进行了扩充,制定了ISO8859-1编码,ISO8859-1编码使用了一个字节的全部8位,编码范围是0-255,能包含西欧语系的所有字母和符号。
GB2312:双字节。简体汉字编码。GB2312将代码表分区94个区(0xA1-0xFE),对应第一个字节,每个区94个位(0xA1-0xFE),对应了第二字节,两个字节的值分别为区号的值和位号的值加32(0x20),因此也被称为区位码。GB2312的编码范7围是0x2121-0x777E,与ASCII有重叠,通常方法是将GB码的两个字节的最高位置1区别。
GBK、GBK2K:GBK是GB2312的扩展,包括繁体字。GB18030-2000(GBK2K)在GBK的基础上增加了藏、蒙等少数民族的字符,GBK2K从根本上解决了字位不够、字形不足的问题。GBK2K首先要求实现能够完全映射到Unicode3.0标准的所有字形,现在还没有任何一个操作系统支持GBK2K。
Unicode:双字节定长编码方案。ISO(国际化标准组织)将全世界所有的符号进行统一编码,称为Unicode编码。
UTF-8:1-3字节变长编码方案。仍属于Unicode编码,不过进行了转换与扩展。UTF-8编码是将Unicode编码中不同范围的字符采用不同的字节进行编码,对于ASCII编码的字符仍使用一个字节进行编码,UTF-8编码完全兼容ASCII编码。与Unicode想比较,UTF-8编码使得英文文档的占用空间减小了一半,因此UTF-8颇受英语系国家的青睐。
UTF-16:UTF-16编码在Unicode基础上进行了一些细节上的扩充,增加了对Unicode编码没有包括的字符的表示方式。UTF-16对Unicode的扩充并没有影响Unicode编码中的原有字符,容易看出Unicode是UTF-16的子集。UTF-16足够用来编码全球的所有字符,微软从Windows2000开始支持UTF-16编码。
最后记录点关于大端与小端的知识。
关于Little-Endian和Big-Endian
在不同体系的计算机系统中,编码的Unicode字符在内存中存储的顺序是不同的。使用Inter生产的CPU的计算机,内存中数据存储通常是低字节在前,高字节在后,这种存储方式被称为Little-Endian。在对于一些计算机,内存中数据存储通常是高字节在前,低字节在后,这种存储方式被称为Big-Endian。
UTF-16编码的文件通常在文件开头用字符标志出使用的存储方式:
若文件开头是“0xFF 0xFF”,表示文件其余部分是Little-Endian的 UTF-16编码;
若文件开头是“0xFE 0xFF”,表示文件其余部分是Big-Endian的 UTF-16编码。
参考:
1. http://ethen.iteye.com/blog/797696
2. http://www.iteye.com/topic/398782
分享到:
相关推荐
字符集与字符集编码简介 我们知道,计算机只能识别诸如0101这样的二进制数,于是人们必须以二进制数据与计算机进行交互,或者先将人类使用的字符按一定规则转换为二进制数。 那什么是字符呢?在计算机领域,我们把...
字符集与字符编码是计算机处理文字的基础,它们决定了如何用二进制表示各种语言的字符。在信息技术领域,理解和掌握字符集与字符编码至关重要,因为它们直接影响到数据的存储、传输和显示。以下是对这些概念的详细...
字符集与编码方式简介 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编
### 维吾尔文字符集Unicode编码表 #### 概述 本文档提供了一份详细的现代维吾尔文字符集的Unicode编码表。这份表格对于理解、处理和展示维吾尔语文字具有重要意义。通过这份表格,我们可以清晰地看到每一个维吾尔文...
### GBK、BIG5等字符集编码排序规则详细解析 #### 概述 在程序开发过程中,字符编码问题经常困扰着开发者。不同的字符集、编码方式以及它们之间的转换常常成为项目中的难题。本文将深入探讨GBK、BIG5等字符集编码...
### Java字符集和编码 #### 一、引言 在探讨Java字符集和编码之前,我们先了解一下为什么在Java编程中需要关注字符集和编码。Java作为一种广泛应用的编程语言,其内部采用的是Unicode编码,这使得Java能够很好地...
文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案
GB2312 是中国大陆规定的字符集和编码,取消了 EASCII 的扩展字符,规定一个小于 127 的字符的意义与原来相同,但两个大于 127 的字符连在一起时,就表示一个汉字。GB2312 编码使用两个字节表示一个汉字,前面的一个...
Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...
字符集和字符编码是计算机处理文字的基础,它们决定了如何在二进制的世界中表示和传输人类语言。本文将深入探讨这两个概念,以及相关的知识点。 首先,我们要理解什么是字符集。字符集,顾名思义,就是一个集合,...
字符集和编码, 原来是这样
字符集编码是计算机科学中的一个重要概念,涉及到数据的存储、传输和显示。在这个"字符集编码查询/反查工具"中,我们可以看到涉及到的关键技术包括字符集、二进制、十六进制、Base64以及URL编码。这些知识点在信息...
字符编码则是字符集与二进制数字之间的映射关系,它是计算机存储和处理字符的方式。通过字符编码,每个字符都可以被转化为一系列的二进制位,以便计算机能够识别和操作。编码过程需要先对字符集内的字符进行排序,...
字符集和字符编码是计算机处理文本的基础,它们决定了如何将人类使用的文字和符号转换成计算机可以理解的形式。本文档主要介绍了几种常见的字符集和字符编码,包括ASCII、DBCS、GB2312、GBK、GB18030、BIG5以及UCS和...
在IT领域,字符集编码是处理文本数据时一个至关重要的概念。不同的编码方式决定了如何将字符映射到二进制表示,以及如何从二进制还原出字符。Qt是一个跨平台的应用程序开发框架,它提供了丰富的API来处理各种编码...
本文旨在深入探讨与Java相关的字符集编码知识,包括但不限于编码的基本概念、几种常见的字符集编码类型及其特点,以及Java如何处理这些字符集编码问题。 #### 二、编码基本知识 1. **ISO 8859-1** ISO 8859-1是...
《GB18030字符集详解及其码表解析》 GB18030,全称为《信息技术...通过深入研究"gb18030所有字符集与码表.xls",开发者可以更好地掌握GB18030的编码规则,从而在嵌入式系统和其他应用场景中实现高效、准确的文本处理。
字符集编码是信息处理领域的一个基本技术,它涉及将自然语言中的字符集合与数字系统之间建立对应关系,从而使得计算机可以处理和存储文本信息。字符集是系统支持的所有抽象字符的集合,这些字符包括各国文字、标点...