You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UTF-8字节切片的任意子切片是否也符合UTF-8编码规范?

结论

该假设不成立:合法UTF-8编码的字节切片,其任意子切片不一定同样是有效UTF-8编码。

原因

UTF-8属于变长编码,单个Unicode字符对应的字节长度为1~4字节,编码规则如下:

  • 单字节ASCII字符:最高位为0,格式为0xxxxxxx
  • 多字节字符:首字节最高位连续N个1代表该字符占N字节,后续N-1个字节均为10xxxxxx格式的续字节

如果子切片的切割位置落在某个多字节字符的中间,就会产生无效编码,常见两种场景:

  • 子切片以续字节开头,找不到对应的首字节匹配
  • 子切片末尾的多字节字符首字节缺少足够的续字节支撑
反例

以中文字符「好」为例,它的UTF-8编码为3个字节:[0xE5, 0xA5, 0xBD]

  1. 原始切片 b1 = [0xE5, 0xA5, 0xBD] 本身是完全合法的UTF-8编码
  2. 取下标i=1, j=3,得到子切片 b2 = b1[1..3] = [0xA5, 0xBD]
  3. 该子切片中的两个字节都是10xxxxxx格式的续字节,没有对应首字节,属于非法UTF-8编码

内容的提问来源于stack exchange,提问作者Jorge Leitao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:06:05