字符,字符串,字符编码的区别

字符,字符串,字符编码

概念

  1. 字符是一个信息单位,在计算机里面,一个中文汉字是一个字符,一个英文字母是一个字符,一个阿拉伯数字是一个字符,一个标点符号也是一个字符。
  2. 字符集是字符组成的集合,通常以二维表的形式存在,二维表的内容和大小是由使用者的语言而定,是英语,是汉语,还是阿拉伯语。
  3. 字符编码是把字符集中的字符编码为特定的二进制数,以便在计算机中存储。编码方式一般就是对二维表的横纵坐标进行变换的算法。一般都比较简单,直接把横纵坐标拼一起就完事了。后来随着字符集的不断扩大,为了节省存储空间,才出现了各种各样的算法。

字符集和字符编码一般都是成对出现的,如ASCII、IOS-8859-1、GB2312、GBK,都是即表示了字符集又表示了对应的字符编码,以后统称为编码。

一个字符有多少个字节

  • GBK编码,一个汉字占两个字节。
  • UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。
  • UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。

小提示:mysql varchar(20)5.0版本后这个20代表的是20个字符。5.0版本之前是20个字节

参考资料

https://www.jianshu.com/p/bd7a6c508c33
https://zh.wikipedia.org/wiki/UTF-8
https://www.zhihu.com/question/20451870

猜你喜欢

转载自blog.csdn.net/weixin_40413961/article/details/107967681