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。


微信小程序
大潇博客 版权所有 Copyright ©2016~2026
京ICP备17004217号-6  合作QQ:284710375
天玺科技