字符计数为什么不一致

字符限制还需要明确计数规则。家庭表情看似一个符号,却包含多个码点和UTF-16单位。下面对比可见字素、JavaScript长度与UTF-8字节。

输入与结果

Intl.SegmenterUTF-16UTF-8 (bytes)
Hello world111111
é (U+00E9)112
é (U+0065 U+0301)123
👨‍👩‍👧‍👦11125
A↵B (LF)333

理解结果

Apps24使用Intl.Segmenter。空格和换行计入总数;不含空格的计数并不删除标点。两种é看起来相似,但字节数不同。因此数据库字节限制或JavaScript长度限制可能拒绝看似很短的文本。

下一步

请逐个尝试示例,A↵B应使用真实换行。提交前确认目标表单限制的是字符、字节还是词,并遵循其规则。为换行转换或规范化留出余量。不要为了统一数字随意删除重音符号。

使用工具

限制与测试条件

示例在支持Intl.Segmenter的环境中经过自动测试。旧浏览器会提示并改用码点计数,因此组合表情的计数不同。词语分段依赖语言,并非通用编辑规则。

参考来源

Apps24通过实现代码和回归测试核对示例。浏览器实验会说明条件,但不保证所有设备的结果。反馈错误时请提供网址、示例输入、预期结果和浏览器。请勿发送密码、私人文档或个人信息。