在这里主要记录一下字符集与编码这两个概念,因为在日常编程当中很容易把这两个概念弄混掉。对这两个概念做澄清也有利于在编程当中对乱码问题的解决。
首先来说一下什么字符集。其实字符集是一个抽象的概念,例如我们可以把所有的英文字母称为一个字符集,同样的,所有的中文字符也可以称为一个字符集,或者将人类所有语言中的所有字符称为一个字符集。之所以称之为是抽象的,是因为同一个字符可能有很多中不同的表现形式,例如我们在电脑屏幕上看到的“A”,其实是“A”这个字符的一个中具体的表现形式,可以理解为是“A”的图形化表示,当我们说出“A”时,就是用来字符“A”的另外一种表现形式,也就是声音的表现形式。为了能够以统一的方式表示字符集,人们就对字符集进行了编码,unicode就是一种对字符集的编码形式,称之为编码字符集。在unicode中,为每一个不同的字符都分配了一个唯一的整数,用来便是这个字符。而这种编码字符集的数量不会太多,现在普遍使用的就是unicode这种编码字符集。
接着,再来说一下编码。虽然unicdoe为每一个字符都分配了一个唯一的整数,但是这个整数在计算机中的存储方式是可以多种多样的。这里就引申出来多种多样的字符集编码,像UTF-8,GBK,UTF-16等等。他们的作用就是规定如何将unicode中代表某个字符的整数以二进制的形式存储到计算机中。也就是说,字符集编码要解决的问题是,用几个byte来表示一个整数以及这几个byte中,高位存储什么,低位又存储什么等等问题?不同的字符集编码都是从某个角度来思考如何方便、有效地将unicode中的字符编码映射到计算机中去。例如UTF-16就是以便长的方式将unicode中的某一个字符对应的整数映射到成二进制形式,这样可以提高存储的效率,但是并不保证二者的值是相等的。而UTF-32则是原封不动地将unicode中的整数映射成二进制形式。
之所以会有如此多不同的字符集编码方式,其实是随着计算机硬件不断发展的结果,因为计算机中的一次能够读取的字长在不断变化,因此也就出现来多种多样的字符集编码方式。当然,也有一些是考虑了如何提高字符存储效率的,例如utf-16这样的变长编码方式。
分享到:
相关推荐
首先,我们要区分两个概念:编码字符集和字符集编码。编码字符集,如UCS(Universal Character Set)或Unicode,是一个抽象的概念,它定义了一套字符的集合,包括世界上各种语言的字母、数字和符号。这些字符没有...
- **原因**:通常是因为字符集不匹配,比如客户端与服务器之间、数据库与应用程序之间的字符集不同。 - **解决步骤**: - 检查并确保MySQL服务器、客户端、数据库、表和字段的字符集设置一致。 - 使用正确的编码...
字符集与编码是计算机处理文本的关键概念,它们决定了如何将人类可读的字符转换成机器可处理的二进制形式。在计算机系统中,字符集是一系列字符的集合,每个字符都有一个唯一的编号,用于区分不同的字符。而编码则是...
例如,`utf8_general_ci`和`utf8_bin`都是`utf8`字符集下的校对集,其中`utf8_general_ci`区分大小写但不区分重音,而`utf8_bin`则区分大小写和重音。 - **校对集示例**:在创建表或列时,可以通过`COLLATE`关键字...
- **双字节字符集(DBCS)**:指GB2312、GBK到GB18030这样的编码方式,其中中文编码通过高字节的最高位不为0来区分。 #### 九、结语 字符编码是信息技术的基础之一,尤其是对于包含复杂字符集的语言而言尤为重要。...
本文将深入探讨MySQL字符集的基础概念、设置方法以及如何在实际操作中进行字符集的转换。 #### 一、理解MySQL字符集与校对规则 **1. 字符集(Character Set)**:字符集是数据库用来存储和处理文本数据的一组字符...
### 字符编码详解 #### 一、编码问题的由来及相关概念理解 ##### 1.1 字符与编码的发展历程 字符编码的历史可以...通过本文的介绍,希望能够帮助读者建立起清晰的编码概念框架,为今后的工作实践打下坚实的基础。
这种编码方式不仅与ASCII兼容,还具有良好的向后兼容性,并且对于常见的字符集来说,通常比其他Unicode编码方式更为节省空间。 #### 六、字符编码的转换 在实际应用中,经常需要进行字符编码之间的转换,尤其是在...
MySQL字符集与比对方法Collation是数据库设计中的重要概念,尤其在处理多语言或有特殊字符需求的数据时。字符集(Character Set)定义了数据的编码方式,而比对方法(Collation)则规定了字符的排序和比较规则。在...
在计算机科学中,有一些基本概念需要了解和区分,如字节、比特、字、字长、字符串、字符集和代码页等。这些概念都是计算机科学的基础,正确地理解它们对于编程和计算机应用至关重要。 字节(Byte)是计算机中最基本...
在MySQL数据库中,字符集(Character Set)和排序规则(Collation)是两个重要的概念,它们关系到数据的存储和比较方式。字符集决定了数据库、表或列能支持的字符范围,而排序规则则定义了字符的比较和排序规则。...
MySQL字符集和字符序是数据库管理系统中至关重要的概念,它们决定了数据如何被编码和比较。字符集是指一组特定的字符及其对应的编码,而字符序则是规定字符比较的规则。理解并正确设置这两个参数对于避免“乱码”...
现代计算机系统内部编码、转换与实现是一个庞大而复杂的理论体系,涉及字符集编码、字符编码方案的分析,以及编码转换的实现机制。字符集是一系列字符的集合,它可能包括字母、数字、标点符号以及特殊控制符等。字符...
MySQL数据库字符集与排序规则是数据库设计中的重要概念,它们直接影响到数据的存储、检索以及跨语言支持。字符集定义了数据库中字符的编码方式,而排序规则则规定了字符的比较和排序逻辑。 首先,字符集(Character...
- 支持多种语言和字符集,包括东亚语言、印度语言等。 - 包括了表情符号、数学符号等特殊字符。 - **转换**:UTF-8、UTF-16等都是Unicode的具体实现方式,不同的实现方式可以根据需要选择。 #### 五、GBK 和 GB...
在数据库管理与应用开发过程中,正确地处理字符集是非常重要的一步。特别是在涉及到多语言环境的应用时,合适的字符集设置能够确保数据的一致性和准确性。本文将详细介绍如何在MySQL数据库中查看和设置字符集,包括...
通过上述示例代码,可以看到如何使用Java完成字符集的编码与解码过程,这对于理解和处理各种字符集下的文本数据具有重要意义。 综上所述,字符集的概念及其发展对于理解计算机如何处理不同语言的文字至关重要。从...
在数据库管理和Web开发中,字符编码和排序规则(也称为...总之,理解字符集和整理的概念对于有效地管理和维护数据库至关重要,尤其是在全球化的网络环境中。正确配置这些参数可以确保数据的一致性、可读性和兼容性。
Unicode的设计允许字符编码在多维空间中扩展,其编码范围非常广泛,几乎覆盖了所有人类已知的字符集。 GBK和GB18030是中文字符编码的扩展。GBK是GB2312的扩展,它对原有的编码空间进行了扩充,支持更多的汉字和字符...
这些特殊符号扩展了基本拉丁字符集,使得Unicode能够支持更广泛的文本表达。 此外,Unicode还提供了各种数学符号,如U+00B1的正负号,U+00BC的四分之一,U+00BD的二分之一,以及U+00BE的四分之三,使得科学和数学...