UTF-8使用方法:工具、命令行与代码三种方式

74 0

UTF-8 是 Unicode 最常用的存储编码,用 1–4 个字节表示一个字符:ASCII 字符 1 字节,拉丁字母扩展 2 字节,常用汉字 3 字节,emoji 等 4 字节。下面重点说明工具、命令行与代码三种方式。

UTF-8使用方法

  1. 用本站字符编码检测工具粘贴文本或上传文件,查看识别出的编码
  2. 乱码时对比 UTF-8 与 GBK 两种解读结果
  3. 确认后在编辑器中以 UTF-8(无 BOM)重新保存
# 查看文件编码
file -i notes.txt
# GBK 转 UTF-8
iconv -f GBK -t UTF-8 in.txt > out.txt
# 查看字节
echo -n "中" | xxd     # e4b8 ad
"中".encode("utf-8")              # b'\xe4\xb8\xad'
b"\xe4\xb8\xad".decode("utf-8")   # '中'
len("123问".encode("utf-8"))      # 6
open("a.txt", encoding="utf-8")

示例

输入:https://www.123wen.cn/?q=测试

编码结果:

68 74 74 70 73 3A 2F 2F 77 77 77 2E 31 32 33 77 65 6E 2E 63 6E 2F 3F 71 3D E6 B5 8B E8 AF 95

说明:按 UTF-8 共 31 字节。

规则说明

  • 首字节前导 1 的个数表示总字节数,后续字节都以 10 开头
  • 同一个码点只能用最短形式编码(过长编码是非法的)
  • U+D800–U+DFFF 代理项码点不能出现在 UTF-8 中
  • BOM 不是必需的,Linux 和网页通常不加

JavaScript 示例

下面是 JavaScript 中处理UTF-8的常用写法:

new TextEncoder().encode("中");        // Uint8Array [228, 184, 173]
new TextDecoder("utf-8").decode(bytes);
// Node.js
Buffer.byteLength("123问", "utf8");    // 6

运行前确认输入的字符集(推荐 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 解读的结果。

文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 文本处理

抱歉,评论功能暂时关闭!