Other
UTF-8和urf8的区别
10-11 16:21在开发中,经常遇到 utf-8(UTF-8)和 utf8,下面来看一下 utf8 和 utf-8 有什么区别。
首先要明确一点,UTF-8 是 Unicode 字符编码的标准写法,由于 PHP 在 Windows 系统中不区分大小写,所以也可以写成 utf-8。
utf8 是 MySQL 特有的字符集,主要在 MySQL 数据库中被用作 utf8mb3 字符集的别名,utf8mb3 仅支持 3 字节字符(如:BMP平面,全称:基本多文种平面字符),无法存储 Emoji 等 4 字节字符,完整 UTF-8 支持需使用 utf8mb4,所以实际应优先用 utf8mb4 以兼容所有 Unicode 字符。
再次强调:MySQL 命令中只能使用 utf8,不能使用 utf-8,不论在命令行中,亦或在 PHP 等程序中,只能使用“set names utf8”,如果加了“-”,此命令将不会生效。
清楚两者用法后,再来说一下特殊情况,在非 MySQL 场景(如 Web 开发或编程语言)中,utf-8 和 utf8 两者通常可互换,但因 IE 等浏览器不识别 utf8,官方规范推荐使用 UTF-8。
PHP中的header:
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
静态文件使用:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
MySQL:
SET NAMES UTF8
总结:MySQL 中仅能使用 utf8,其他地方一律推荐使用大写 UTF-8。
微信小程序