字符串长度计算

字符串长度计算

字符串长度计算 是什么?

字符串长度计算工具,用来数清一段文本到底有多少个字符、多少字节、多少词、多少行。写代码时经常遇到数据库字段限制,比如 MySQL 的 VARCHAR(255) 在 utf8mb4 下最多存 255 个字符,但一个汉字占 3 字节、emoji 占 4 字节,光看字数会踩坑。比如你给商品写标题,后台提示「不超过 60 字符」,你写了 58 个汉字觉得没问题,实际 UTF-8 字节数是 174,超出接口限制被截断。这个工具把字符数、UTF-8 字节数、GBK 字节数、中文字符数、英文单词数、行数一次性列出来,还能把多段文本分别统计后汇总,适合填表单、写接口文档、做数据校验时快速核对。

使用步骤

打开页面,在顶部输入框粘贴或输入要统计的文本,例如「你好 world 2024」。

勾选需要的统计项:字符数、UTF-8 字节数、GBK 字节数、词数、行数、中文字符数、英文字符数。

查看实时结果:上面这段文本字符数为 13,UTF-8 字节数为 16,GBK 字节数为 12,词数为 3。

需要批量对比时,点击「添加一段」,把第二段文本如「测试 abc」放进去,两段会分别统计并给出合计。

复制结果或直接对照接口文档里的 maxLength、maxByteLength 参数做校验。

对比:用它还是手工做?

对比维度本工具手工/替代做法

统计耗时粘贴即出结果,约 0.1 秒手工数 500 字约 3-5 分钟,还容易数错

字节数精度同时给出 UTF-8 和 GBK 两种字节数用记事本另存看文件大小,只能看一种编码

多段批量支持添加多段分别统计并汇总每段单独复制到 Word 看字数,来回切换

emoji 处理按 Unicode 码点统计,标注代理对差异JS 的 length 会把 emoji 算成 2,容易误判

隐私纯浏览器本地计算,文本不上传在线接口类工具会把文本发到服务器

常见问题

汉字算几个字符?

在 Unicode 码点层面,一个常用汉字算 1 个字符,比如「中」的码点是 U+4E2D。但字节数取决于编码:UTF-8 下常用汉字占 3 字节,GBK 下占 2 字节。所以「中文」两个字,字符数是 2,UTF-8 字节数是 6,GBK 字节数是 4。数据库字段限制如果写的是字节,就要按字节数判断。

emoji 长度怎么算?

emoji 情况复杂。像「😀」U+1F600 在 UTF-8 下占 4 字节,字符数按码点算 1 个;但 JavaScript 的 string.length 会把它算成 2,因为它是代理对。带肤色修饰符的 emoji 如「👍🏽」由两个码点组成,字符数 2、UTF-8 字节数 8。做长度校验时建议用码点或字节数,别直接用 JS 的 length。

UTF-8 和 GBK 差多少?

ASCII 字符两者都是 1 字节。汉字 UTF-8 是 3 字节,GBK 是 2 字节。例如 100 个汉字,UTF-8 是 300 字节,GBK 是 200 字节,差 100 字节。GBK 覆盖的字符集比 UTF-8 小,生僻字和 emoji 在 GBK 里可能无法表示,会变成问号或占位符。

词数是怎么统计的?

按空白字符(空格、制表符、换行)切分后计数。例如「hello world」是 2 个词,「你好 世界」也是 2 个词。中文没有空格时整段会被当成 1 个词,比如「今天天气不错」词数是 1。如果需要中文分词,得用专门的分词库,这个工具不做语义切分。

行数怎么算的?

按换行符 \n 计数,最后一行如果没有换行符也会算 1 行。例如「a\nb\nc」是 3 行,「a\nb\nc\n」也是 3 行。Windows 的 \r\n 会先归一化处理,不会多算。空文本行数为 0,只有一个换行符的文本行数为 2。

统计基于 Unicode 码点和 UTF-8/GBK 编码规则,字符数按码点计,不等同于 JavaScript 的 string.length(代理对会差 1)。GBK 字节数对 GBK 字符集外的字符按替换符估算,仅供参考。所有计算在浏览器本地完成,文本不会上传到任何服务器,关掉页面即清空。

相关推荐

签字笔怎么擦掉(签字笔怎么擦掉 门上)
365bet体育在线怎么样

签字笔怎么擦掉(签字笔怎么擦掉 门上)

📅 07-10 👁️ 2431
产品天地 - EOS数码单反相机 - EOS 700D
365bet体育在线怎么样

产品天地 - EOS数码单反相机 - EOS 700D

📅 08-12 👁️ 1878
CPA推广接单平台推荐:五大知名平台助力高效营销
365bet体育在线怎么样

CPA推广接单平台推荐:五大知名平台助力高效营销

📅 06-21 👁️ 116