字符计数为什么不一致
字符限制还需要明确计数规则。家庭表情看似一个符号,却包含多个码点和UTF-16单位。下面对比可见字素、JavaScript长度与UTF-8字节。
输入与结果
| Intl.Segmenter | UTF-16 | UTF-8 (bytes) |
Hello world | 11 | 11 | 11 |
é (U+00E9) | 1 | 1 | 2 |
é (U+0065 U+0301) | 1 | 2 | 3 |
👨👩👧👦 | 1 | 11 | 25 |
A↵B (LF) | 3 | 3 | 3 |
理解结果
Apps24使用Intl.Segmenter。空格和换行计入总数;不含空格的计数并不删除标点。两种é看起来相似,但字节数不同。因此数据库字节限制或JavaScript长度限制可能拒绝看似很短的文本。
下一步
请逐个尝试示例,A↵B应使用真实换行。提交前确认目标表单限制的是字符、字节还是词,并遵循其规则。为换行转换或规范化留出余量。不要为了统一数字随意删除重音符号。
使用工具限制与测试条件
示例在支持Intl.Segmenter的环境中经过自动测试。旧浏览器会提示并改用码点计数,因此组合表情的计数不同。词语分段依赖语言,并非通用编辑规则。
参考来源
Apps24通过实现代码和回归测试核对示例。浏览器实验会说明条件,但不保证所有设备的结果。反馈错误时请提供网址、示例输入、预期结果和浏览器。请勿发送密码、私人文档或个人信息。