UTF-8 是 Unicode 最常用的存储编码,用 1–4 个字节表示一个字符:ASCII 字符 1 字节,拉丁字母扩展 2 字节,常用汉字 3 字节,emoji 等 4 字节。下面重点说明操作步骤与注意事项。
UTF-8怎么用
- 用本站字符编码检测工具粘贴文本或上传文件,查看识别出的编码
- 乱码时对比 UTF-8 与 GBK 两种解读结果
- 确认后在编辑器中以 UTF-8(无 BOM)重新保存
- 网页中声明 <meta charset="utf-8">,服务器响应头带 charset=utf-8
MySQL 的 utf8 实际是 3 字节的 utf8mb3,存 emoji 会报错,应使用 utf8mb4。
示例
输入:中文
编码结果:E4 B8 AD E6 96 87
说明:按 UTF-8 共 6 字节。
怎么选
新项目一律选 UTF-8;对接老旧的 Windows 软件、银行或政务系统时,按对方要求转换为 GBK/GB18030;MySQL 选 utf8mb4 而不是 utf8(后者最多 3 字节,存不了 emoji)。
UTF-8 与 GBK:UTF-8 覆盖全部 Unicode,汉字 3 字节;GBK 只覆盖简繁汉字和部分符号,汉字 2 字节,但不能表示 emoji 和多数外文。UTF-8 与 UTF-16:UTF-16 中 BMP 字符 2 字节,适合内存中处理(Java、JavaScript、Windows 内部),但不兼容 ASCII。
Go 示例
下面是 Go 中处理UTF-8的常用写法:
s := "123问"
len(s) // 6,Go 字符串就是 UTF-8 字节
utf8.RuneCountInString(s) // 4
utf8.ValidString(s) // true运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的字符编码检测工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【UTF-8 和 utf8mb4 有什么区别?】utf8mb4 是 MySQL 中真正完整的 UTF-8;MySQL 的 utf8 最多 3 字节,不能存 emoji。
【什么是 BOM?】文件开头的 EF BB BF 三个字节,用来标记 UTF-8。网页和脚本文件建议不加。
【“䏿–‡”是什么乱码?】UTF-8 编码的“中文”被按 Latin-1/Windows-1252 解读的结果。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。
标签: 文本处理