首页 / 数学计算 / 在线数据压缩模拟器
免费在线工具

在线数据压缩模拟器

查看文本的 Huffman 编码与符号码表,比较 UTF-8 原始位数和载荷位数并复制结果。教学演示,不生成压缩档案。

开始使用

结果的含义

模拟器按 Unicode 码点统计频率,反复合并频率最小的两个节点来构建二叉 Huffman 树。只有一种符号时,其编码固定为 0。本实现对完全相同的输入给出相同编码;频率相同的节点若采用另一种排序规则,可以得到不同的有效码表,因此比较时应看加权载荷长度。

可复核示例

ABBC 得到 B=0、A=10、C=11:2×1 + 1×2 + 1×2 = 6 位载荷,原始 UTF-8 为 32 位。AAAA 为原始 32 位、载荷 4 位;你好为 48 位和 2 位;实际输入两个表情 😀😀 为 64 位和 2 位。

输入与显示

上限是 100000 个 JavaScript UTF-16 代码单元,不是 UTF-8 字节数或可见字符数。许多表情占两个代码单元,一个可见表情序列也可能包含多个码点。空文本会被拒绝,但仅含空白的文本仍是有效数据。JSON 会把换行显示为 \n、制表符显示为 \t,普通空格则显示为带引号的空格 " ";这只是展示方式,不会改变输入符号。

教学边界

原始位数为 UTF-8 字节长度乘以 8;载荷位数为各符号的频率与编码长度乘积之和。载荷不包含码表、树、文件头、填充和容器开销,因此不是压缩文件大小,也不保证实际节省空间。本工具不生成档案、压缩二进制下载或解压器,也不是加密工具。计算在浏览器中完成,大量不同符号可能生成很长的结果表。

此工具无需安装,所有处理均在当前浏览器本地完成,不会上传输入内容或本地文件。