为什么易语言压缩数据反而使其变大了?

11 篇文章 0 订阅
UP主在使用易语言的压缩数据命令时发现,无论是中文还是英文,压缩后的数据大小不减反增。经过测试,UP主排除了中英文差异的影响,并尝试通过编码转换来解决。将ansi编码的中文数据转为utf-8后,数据量减少,而英文数据保持不变。进一步的转码实验如ansi转usc2和Unicode,导致数据大小变化不一。这个过程揭示了易语言中压缩数据命令与编码的紧密关联。
摘要由CSDN通过智能技术生成

很多小伙伴在使用易语言自带的函数,压缩数据这条命令时都会发现,数据本身并没有变小,而是变大,本次案例中,UP使用"你好"这一句话作为压缩,之后本该只有4字节的数据,反而变成了20字节,直接大了五倍,然后UP想到是不是因为中英文的原因,所以UP又用英文“AB”作为压缩的数据,之后本该2字节的数据被压到18字节,直接大了九倍,于是UP还是不死心,一定要弄出到底是什么原因,目前已经知道不是中英文的原因,所以UP又决定用转换编码的方式,因为易语言中的编码是ansi编码,而日常使用基本上都是utf-8的编码,所以UP在压缩数据上加上了编码转换,之后发现,转为utf-8编码的中文压缩后变成了22字节,在原本的基础上又增加了2个字节,而转为utf-8的英文字母,保持18字节不变,于是UP决定在压缩后转换编码,随后UP便发现,原本压缩后20字节的中文,被从ansi转换为utf-8格式后变成了5字节,仅仅多了1字节,之后UP看了下英文AB压缩后的数据大小,也是从18字节变为了5字节,但与压缩前的2字节相比实在是太大了,于是UP决定看看有么有别的解决方法,UP随后便将ansi编码转为usc2的编码,结果发现转码失败,数据大小全部变为0字节,然后UP接着将ansi编码转为Unicode编码,结果发现,中文“你好”压缩后是12字节,是未压缩的三倍,英文“AB”也是从2字节变为了12字节,可能是转换编码的原因,使其压缩后转换为Unicode编码的尺寸一样,之后UP又将utf-8编码格式转为ansi编码格式,发现结果是同样的5字节,随后UP将英文“AB”改为“ABC”,结果发现还是5字节,又改成了“ABCDEF”结果发现原本6字节的英文字母,被压缩转码后还是5字节,但是能不能转回来就不知道了,但看来易语言中的压缩数据这条命令还是与编码有关。 作者:雾削木的小何子 https://www.bilibili.com/read/cv3294852 出处:bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值