怎样根据txt、doc、mobi文件大小估算单词(汉字)数量

txt 是纯文本,也就是都是字,没有其他标记之类的。一般如果是 UTF-8 编码的,一个汉字三个字节。(理论上非基本平面的字是四个字节的,但我们先忽略之。)所以20KiB大小的文件就是包含6000多汉字。
其他文件格式就要看里面有多少标记格式之类的信息了,甚至文件里如果嵌入了图片之类的,你当然就算不准了。

■网友
我上两个星期刚好写了一个脚本,统计我过去两年写了多少字,可能适合你的要求。
Niefee/file-info安装:
npm install file-info@latest -S新建一个文件:
const info=require(\u0026#39;file-info\u0026#39;);info.showDetail(\u0026#39;/Users/.../study-records\u0026#39;).then((data)=\u0026gt;{ console.log(data);});打印结结果:
总行数: 22297中文总数: 89365英文及数字总数: 208096标点符号总数: 61976文件大小:674550B(≈=658.74K)写得有点粗糙,但写的时候学到不少东西。英文的话,一个单词占一个字节,用正则匹配了所有英文单词及数字,然后统计长度length。中文的话,统计了\\u4E00-\\u9FA5\\uF900-\\uFA2D这个区间的中文,统计个数length,估算了一下一个中文等于三个字节。还有换行、tab、空间都会占据空间的。
其实根据文件大小统计字数是不准确的,参考:utf-8中的汉字占用多少字节 - chummyhe89的专栏 - 博客频道 - CSDN.NET
我是直接遍历,统计个数。
【怎样根据txt、doc、mobi文件大小估算单词(汉字)数量】 最后想问问大神,有什么好的方法,可以区别图片跟文本文件。我的方法是,文本文件没有ASCII码00,有就是非文本的二进制文件。


    推荐阅读