阅读口径
本文保留原字符串;操作在副本上进行,候选结果需由来源证据核对。
先定义产品说的字数
存储上限可能按字节计算,程序字符串长度可能按码元计算,界面希望限制的是用户感知字符。三者混用,会出现计数不一致或截断组合表情的问题。
规范参考:Unicode:文本分段。操作场景与排查建议为本站说明。
分段规则与显示单元
Unicode 文本分段规范提供字素簇边界规则,可用于接近用户感知字符的分段。它仍不是字体渲染的保证,复杂文字和具体产品需求需要实际样本验证。
规范参考:Unicode:文本分段。操作场景与排查建议为本站说明。
截断前后验证完整性
对本样本与包含组合序列的测试文本分别执行长度限制。检查是否切断 UTF-8 字节序列、UTF-16 代理项或字素簇;不要把不同层次的完整性当作同一指标。
可执行检查单
- 01说明限制单位:字节、码点还是字素簇。
- 02测试边界长度前后各一个样本。
- 03验证截断后的解码与显示结果。
一个常见问题
按码点截断一定不会拆表情吗?
不一定。一个表情序列可能含多个码点;应考虑字素分段及产品预期。
本页结论
页面输入限制、接口校验与数据库上限应明确各自单位。