PHP校对集-乱码问题

校对集就是数据库数据进行比较的时候所采用的比较方式。
A =======> 01000001 =======> 65
a =======> 01100001 ========> 97

校对集有三种比较方式
   _bin:使用二进制进行比较(区分大小写)
   _ci:(case insensitive),大小写不敏感,不区分大小写(将某个字符转变成另外一个字符对应的大小写,从而再进行数值的比较)
   _cs:(case sensitive),大小写敏感,区分大小写

比较大小:order by 字段 [asc|desc],对字段进行排序,asc表示升序(默认的),desc表示降序

默认的,不论是gbk还是utf8是不区分大小写
这里写图片描述



mysql校对集查看:show collation;

修改数据库校对集
这里写图片描述

_bin和_ci的区别
这里写图片描述

utf8不支持中文比较,gbk支持(拼音比较)


乱码问题

乱码的原因:某一端不能正常的解析另一端提供的数据(理解的目标数据的字符集有误
web包含三个部分:浏览器显示,数据库存储,PHP文件
  浏览器显示:默认是gbk
  数据库存储:默认是utf8
  PHP文件:utf-8

防止乱码原理
这里写图片描述

理想状态下,我们希望浏览器,PHP脚本和数据库字符集三码合一,都使用一种字符集来实现。

猜你喜欢

转载自blog.csdn.net/lwzhang1101/article/details/80277012