一、I/O操作(中文问题)

一、编码概念

计算机存放数据只能存放数字,所有的字符都会被转换为不同的数字。

常见的编码有:ISO-8859-1 ASCII数字和西欧字母

  GBK:简体中文和繁体,以及日文

  GB2312:简体中文

  BIG5:繁体中文    

  UNICODE(统一码,万国码):包含了所有的文字,无论是中文,英文,藏文,发文,世界所有的文字都包含在其中。

因为不同的编码方式对应不同的存储长度。由于UNICODE要存放所有的数据,那么他需要存储空间最大的。不仅如此,每个数字都是很长的(占用4个字节),因为不仅表示字母,还要表示汉字

如果完全按照UNICODE的方式来存储数据,就会有很大的浪费。

比如在ISO-8859-1中,a字符对应的数据是0x61,而在UNICODE中对应的数字时0x00000061.加入一篇文章还有很多英文字母,那么如果按照UNICODE的方式进行数据保存就会消耗很多控件。

这种情况下,就出现了UNICODE各种减肥的子编码,UTF-8,UTF-16,UTF-32,一般常用UTF-8

原文地址:https://www.cnblogs.com/drq1/p/8479878.html