先了解一下字符集
我们的计算机只能读懂0和1组成的二进制数据,那么我们看到的字符,计算机是怎么存储,传输,展示的呢?这就需要建立一张二进制数据与字符之间的映射关系表,当我们需要存储一个字符的时候,把字符对应的二进制数据存储到计算机,当我们需要传输一个字符的时候,传输字符对应的二进制数据。而这个映射关系就叫字符集,简单来说字符集就是一个范围内字符的编码规则。另外每一种字符集都对应多个比较规则,比如不区分大小的比较是变成大写或者小写字母再比较,但是本质上都是比较字符编码。
常见字符集
ASCII 字符集,共收录128个字符,包括空格、标点符号、数字、大小写字母和一些不可见字符。使用一个字节进行编码,最高位空余没有使用。
ISO 8859-1字符集 ,在ASCII字符集的基础上进行了扩充,共256个字符,一个字节进行编码,使用了最高位。这个字符集在mysql中有个别名,叫latin1。
GB2312字符集 ,收录了汉字以及拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母。兼容了ASCII编码,如果一个字符在ASCII字符集中使用一个字节编码,否则使用两个字节编码。最高位是否位1判断本字节是一字节编码字符还是两字节编码字符。
GBK
字符集, GBK
字符集只是在收录字符范围上对GB2312
字符集作了扩充,编码方式上兼容GB2312
utf8
字符集,能收录地球上所想到得所有字符,还在不断扩充。兼容ASCII字符集&