区分utf-8与utf8
对于utf-8,需要指出UTF-8是其标准写法,PHP在Windows下边英文不区分大小写,所以也可以写成utf-8。UTF-8也可以把中间的-省略,写成UTF8。一般程序都能识别。
但是,在MySQL中使用utf-8与UTF-8会出现问题,我们在MySQL数据库中只能使用utf8,在MySQL的命令模式中只能使用utf8,不能使用utf-8。
为了严格一点,在大部分情况下最好用标准的大写UTF-8。
编码设置进阶:区分Unicode与UTF-8
简单来说:
Unicode是「字符集」UTF-8是「编码规则」
具体解释:
字符集:为每一个「字符」分配一个唯一的ID(学名为码位/码点/CodePoint)编码规则:将「码位」转换为字节序列的规则(编码/解码可以理解为加密/解密的过程)
UTF-8是这样做的:
1.单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
2.n个字节的字符(n1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
总结: