`
yimi128
  • 浏览: 56127 次
  • 来自: ...
社区版块
存档分类
最新评论

编码字符集与字符集编码

 
阅读更多

        首先,我们需要理解清楚,字符集和编码是两回事。

 

        我们首先说说字符集。顾名思义,字符集就是字符的集合,例如,所有的英文字母是一个字符集,所有的汉字也是一个字符集,把全世界所有语言的字符放在一起,也构成一个字符集。

 

        给字符集中的每一个字符都分配一个整数编号,建立起字符与整数编号之间的一一对应关系,这样的字符集,我们暂且称为编码字符集。但是,对于同一个字符,不同的字符集所指定的整数编号未必相同。例如“中”这个字,Unicode中,它的编号是0x4e2d,我们可以说“中”是Unicode这个编码字符集中的第0x4e2d个字符。而在编码字符集utf-8中,它的编号是0xe4b8ad。另外,有些字符在不同的编码字符集中却被分配了相同的整数编号,例如应为字母A,在ASCII及Unicode中,他的编码都是0x41。

 

      但是,编码字符集中字符被分配的整数编号,并不一定就是该字符在计算机中存储时所用的值,计算机中存储时使用什么值是有字符集编码规则来决定的。

 

      所谓字符集编码规则,就是指将编码字符集中的字符对应的整数编号,对应到计算机存储的二进制值的规则。有的编码规则简单的将编码字符集中的字符对应的整数编号直接作为其在计算机中的表示形式而存储,例如英文字符集。在几乎所有的字符集编码方案中,英文字母的整数编号与其在计算机中的内部存储的二进制形式都一致。

      有的编码方案就不是这样简单的一一对应,而是对整数编号做了变换之后存储到计算机内部存储的。

      UTF-8编码规则:对Unicode编码字符集中的整数编号做了变化之后存储到计算机中,以“汉”为例,它的Unicode整数编号为0x6c49,在UTF-8编码规则下,其计算机中的二进制存储形式变成了0xe6b189。

      UTF-16编码规则:对Unicode中的前65536个字符不做变换,直接作为计算机存储。以“汉”为例,它的Unicode整数编号是0x6c49,在UTF-16编码规则下,其计算机中的二进制存储形式仍为0x6c49。而对大于65536的字符,使用surrogate pair机制,用4个字节来表示一个字符。

      UTF-32编码规则:对所有的Unicode字符均不做变换,直接使用整数编号存储,但是太过于浪费空间。

     

      UCS-2编码规则:对Unicode中的前65536个字符不做变换,直接作为计算机存储。与UTF-16类似,但是对于编号大于65536的字符则没有提供解决办法。

      UCS-4编码规则:与UTF-32思想完全一致。

 

分享到:
评论

相关推荐

    Java中的字符集编码入门(二)编码字符集与字符集编码的区别[参考].pdf

    在Java编程语言中,理解和掌握字符集编码是至关重要的,特别是在处理各种文本数据时。本文主要探讨了编码字符集和字符集编码的区别,这对于软件开发人员来说是基础且必要的知识。 首先,我们要区分两个概念:编码...

    gb18030中文编码字符集

    GB18030-2005 信息技术 中文编码字符集,单双四字节所有字符,包含简繁生僻字。

    GB 2312-1980 信息交换用汉字编码字符集 基本集.rar

    ### GB 2312-1980 信息交换用汉字编码字符集 基本集 #### 一、GB 2312-1980简介 GB 2312-1980是中华人民共和国国家技术监督局于1980年发布的信息交换用汉字编码字符集的基本集,它是中国最早的一套国家标准汉字...

    字符集与字符集编码简介

    字符集与字符集编码简介 我们知道,计算机只能识别诸如0101这样的二进制数,于是人们必须以二进制数据与计算机进行交互,或者先将人类使用的字符按一定规则转换为二进制数。 那什么是字符呢?在计算机领域,我们把...

    Mysql字符集编码详解

    Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...

    常用字符集及字符编码简介

    GB2312是中国大陆的国家标准字符集,全称为“信息交换用汉字编码字符集·基本集”。它包含6763个汉字以及一些符号,主要用于简体中文的处理。GB2312使用两个字节来表示一个字符,能够满足早期中文信息处理的基本...

    gb18030所有字符集与码表.rar

    GB18030,全称为《信息技术——汉字编码字符集——基本集的扩充》,是中国国家强制性标准,是GBK字符集的进一步扩展,旨在支持更多的汉字以及少数民族文字。在IT领域,尤其是涉及到中文处理的系统和应用中,对GB...

    GB2312汉字编码字符集对照表.xls

    GB2312汉字编码字符集对照表.xls

    字符编码和字符集研究

    字符编码则是字符集与二进制数字之间的映射关系,它是计算机存储和处理字符的方式。通过字符编码,每个字符都可以被转化为一系列的二进制位,以便计算机能够识别和操作。编码过程需要先对字符集内的字符进行排序,...

    信息交换用汉字编码字符集

    信息交换用汉字编码字符集 信息交换用汉字编码字符集是中国国家标准总局发布的一套国家标准,标准号是 GB 2312—1980。这个标准收录了6763个汉字和682个非汉字图形字符,适用于汉字处理、汉字通信等系统之间的信息...

    深入理解字符编码(字符集 字符编码 字符显示 乱码问题)

    文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案

    字符集和字符编码

    GB2312 是中国大陆规定的字符集和编码,取消了 EASCII 的扩展字符,规定一个小于 127 的字符的意义与原来相同,但两个大于 127 的字符连在一起时,就表示一个汉字。GB2312 编码使用两个字节表示一个汉字,前面的一个...

    传统蒙古文C编码字符集1.0版.pdf

    1.此版本为传统蒙古文C编码字符集1.0版,为了保持版本的相对稳定,半年以内版本不升级,征集到意见和建议后,改进下一版本,使其更能满足广大用户的需求; 2.C编码的目标是:为全世界传统蒙古文编码统一贡献力量,...

    字符集和字符编码详解

    字符集和字符编码是计算机处理文字的基础,它们决定了如何在二进制的世界中表示和传输人类语言。本文将深入探讨这两个概念,以及相关的知识点。 首先,我们要理解什么是字符集。字符集,顾名思义,就是一个集合,...

    字符集编码查询/反查工具

    字符集编码是计算机科学中的一个重要概念,涉及到数据的存储、传输和显示。在这个"字符集编码查询/反查工具"中,我们可以看到涉及到的关键技术包括字符集、二进制、十六进制、Base64以及URL编码。这些知识点在信息...

    GB2312汉字编码字符集1

    GB2312汉字编码字符集是中国最早期的汉字编码标准之一,主要针对简体中文进行编码,由国家标准总局于1980年发布。这个字符集为汉字提供了一个二进制编码方式,使得计算机可以处理和显示汉字,极大地推动了中文信息...

    java字符集编码问题

    本文旨在深入探讨与Java相关的字符集编码知识,包括但不限于编码的基本概念、几种常见的字符集编码类型及其特点,以及Java如何处理这些字符集编码问题。 #### 二、编码基本知识 1. **ISO 8859-1** ISO 8859-1是...

    qt实现转换文件字符集编码

    在IT领域,字符集编码是处理文本数据时一个至关重要的概念。不同的编码方式决定了如何将字符映射到二进制表示,以及如何从二进制还原出字符。Qt是一个跨平台的应用程序开发框架,它提供了丰富的API来处理各种编码...

    Java字符集和编码

    ### Java字符集和编码 #### 一、引言 在探讨Java字符集和编码之前,我们先了解一下为什么在Java编程中需要关注字符集和编码。Java作为一种广泛应用的编程语言,其内部采用的是Unicode编码,这使得Java能够很好地...

Global site tag (gtag.js) - Google Analytics