跳到主内容
快讯直播
AI智模界
AI 词典

UTF-8 与字符编码:乱码、字节和 token 的根源

一句话定义:UTF-8 是把 Unicode 字符变成字节的变长编码规则;字符编码则是“字符与字节如何对应”的整套约定。

计算机只存字节。文本要保存或传输,必须把字符翻译成字节,读回时再翻译。Unicode 给每个字符编号,叫码点(code point),如“你”是 U+4F60。UTF-8 规定这个码点写成哪几个字节:ASCII 字符 1 字节,常见汉字 3 字节,emoji 或生僻字 4 字节。所以“你好”在 UTF-8 下是 6 字节。打个比方:Unicode 像身份证号,UTF-8 像快递包装规格,不同货物用不同大小的箱子。

乱码就是编码和解码用了两套规则。发送方按 UTF-8 写,接收方按 GBK 读,字节还是那些字节,拼出来的字却错了。不是文件坏了,是翻译错了。

要区分几个概念:

概念解决什么“你”的例子
Unicode给字符编号U+4F60
UTF-8把码点写成字节E4 BD A0,3 字节
AI 词典:Token">Token模型词表切分单位可能 1 个,也可能拆成多个

一个汉字算几个 token?根源不在 UTF-8,而在 tokenizer(分词器)的切分算法和词表。现代大模型常用 BPE(Byte Pair Encoding,字节对编码)或 SentencePiece 之类:先把文本转成字节或字符,再按词表合并常见片段。常见汉字若在词表里,可能 1 字 1 token;生僻字、emoji、混杂符号可能被拆成 2 个以上 token;有些词如“人工智能”也可能整体成 1 个 token。因此 UTF-8 只决定“占几个字节”,token 数由具体模型的 tokenizer 决定,以官方页面或分词工具为准。

对从业者和普通人的实际意义:做接口、数据库、日志,统一用 UTF-8,能减少乱码;估算长度时,别把字符数、字节数、token 数混为一谈;做 AI 应用时,token 直接影响上下文窗口、截断和费用,中文通常比英文更“占 token”,需要留余量。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。