字符和编码

 阅读约 4 分钟

一、概述

1.1大致目的

  • 了解编码集的发展
  • 中文编码集
  • 常用编码

二、ASCII码

2.1ASCII码

  1. ASCII码使用7bit二进制数来表示,所以共2^7=128个编码。
  2. ASCII包含95个可打印的字符和33个不可打印字符(包括控制字符) (128 = 33 + 95)

图片描述

记住一些常用的ASCII码的10进制数字是很有必要的,比如说A是65,a是97,0是48。同一个字母,大写字母比小写字母小32。

2.2ASCII码的拓展

随着计算机技术的发展,ASCII码逐渐满足不了人们的需求了,主要包括如下几点:

  • 很多应用或者国家中的符号都无法表示
  • 数学字符:“➗、≠、≥、≈”等等一些数学字符无法表示。

所以ASCII码就被扩充了。扩充后的是增加了一位的,也就是从原来的7位变为8位,扩充后的编码叫做 Extend ASCII码。
拓展的ASCII码增加了一些英标、希腊符号、欧洲字符、表格符、其他常用符等一些字符。

三、我国字符编码集的国际化

事实上,很多国家的语言是有限字符构成的,然而我国文化博大精深,中文则是不以有限字符组合的语言。所以字符编码集的国际化就很有必要。

3.1 GB2312

国标2312是我国最早的比较完毕的一个编码集,全称叫:信息交换用汉字编码字符集,包括7前多个字符。

3.2 GBK

由于GB2312的规范性不被国家认可,所以我国又发命了GBK(国标扩)这种编码集,全称叫:汉字内码扩展规范。
它向下兼容GB2312,向上支持国际ISO标准。收录了2.1万多个汉字,并支持全部中日韩汉字。

四、Unicode

我们需要一种全世界通用的字符编码,举个例子,比如美国的tom要访问中国的一个网站,若tom的电脑上没有安装GBK这种支持中文的编码集,则他看到的中文网站将是一片乱码。所以我们不仅要有一个本地化的编码,还学要一个全球化的编码集。

Unicode :统一码、万国码、单一码,支持世界上所有国家的语言编码,定义了世界通用的符号集,UTF-*实现了编码。
比如说我们平常使用的UTF-8是以字节为单位对Unicode进行编码。

五、拓展

平时编程时,建议使用Unicode字符集, 建议使用UTF-8
②中国的Windows系统是默认使用GBK编码方式的。所以在平时设置IDE的时候我们也要注意下。
③字符集在记事本上的更改: 记事本默认的存储编码是ANSI。
在简体中文系统下,ANSI 编码代表GB2312 编码,在日文操作系统下,ANSI 编码代表JIS 编码。
我们在桌面新建一个测试记事本,并输入以下内容

图片描述

点击另存为,可以看到,下方有个编码的选项,默认选择ANSI就是GBK编码。

图片描述
我们对保存后的文本文档,点击右键选择打开方式,我们换成另一个文本文档软件,在此使用sublime打开,我们发现:

图片描述
我们发现中文字符全部乱码,这是由于GBK的中文编码和UTF-8的中文编码不一致造成的,这也是为什么我们平时在IDE上打中文注释移到记事本乱码的原因。
我们在换过来说明下,下面是将sublime中的中文文档转至记事本的情况:

图片描述

我们点击另存为保存后,使用TXT打开:

图片描述
发现此时text的编码是UTF-8的。实时上我可以使用记事本任意切换UTF和GBK这两种编码方式,当我们遇到GBK和UTF编码的乱码,并且是因为这两种格式的中文编码不同导致时,我们不妨使用上面这种方法,让中文编码变成正常的形式。

阅读 140发布于 7月28日
推荐阅读
目录