当前位置:首页 » 文件管理 » 压缩新BUG

压缩新BUG

发布时间: 2022-04-27 15:12:33

Ⅰ 今天发现c#在做字符串压缩的时候的一个bug

NO,NO,事实上默认的Default是指你的操作系统当前所使用的编码类型,在中国一般来说是UTF-8

如果你要指定的话可以用Encoding.UTF-8

但是解压的时候也要用同一种编码形式,否则就会出错。。。

补充:刚刚收到你的信息了,你把字符串压缩之后,却又用Encoding.GetString方法来得到字符串,我想错就错在这一步,你应该直接把它(也就是所得到的字节数组)以二进制的形式写进文件文件的后缀你可以自定义一个也没问题,然后读取的时候再从文件中读取出来。

简单地说就是把两个 CompressString2String,DecompressString2String两个函数修改一下:
注释:按钮一为压缩(把textBox1中的文本进行压缩然后写入date.dt文件)
按钮一为压缩(把date.dt文件的数据读出来进行解压缩并且显示在textBox2中)

static void Compress(Stream source, Stream dest)
{
using (GZipStream zipStream = new GZipStream(dest, CompressionMode.Compress, true))
{
byte[] buf = new byte[1024];
int len;
while ((len = source.Read(buf, 0, buf.Length)) > 0)
zipStream.Write(buf, 0, len);
}
}

static void Decompress(Stream source, Stream dest)
{
using (GZipStream zipStream = new GZipStream(source, CompressionMode.Decompress, true))
{
byte[] buf = new byte[1024];
int len;
while ((len = zipStream.Read(buf, 0, buf.Length)) > 0)
dest.Write(buf, 0, len);
}
}

public static bool CompressString2String(string strSource)
{
using (MemoryStream msSrc = new MemoryStream(Encoding.UTF8.GetBytes(strSource)))
using (MemoryStream msTgt = new MemoryStream())
{
Compress(msSrc, msTgt);
File.WriteAllBytes(Application.StartupPath+"data.dt",msTgt.ToArray());
}
return true;
}

public static string DecompressString2String()
{
using (MemoryStream msSrc = new MemoryStream(File.ReadAllBytes(Application.StartupPath + "data.dt")))
using (MemoryStream msTgt = new MemoryStream())
{
Decompress(msSrc, msTgt);
return Encoding.UTF8.GetString(msTgt.ToArray());
}
}

private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(CompressString2String(textBox1.Text).ToString()+"Success!");
}

private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = DecompressString2String();
}

再补充:
我想问一下,你要实现的是字符串加密?还是用于网络发送?
如果你是想把一个字符串转化为另一种形式,让别人看不懂,那就用加密技术,如果,是想实现将字符发送到远程,也可以把我说的文件流改写为网络流,但是你说的字符串转换,我实在不明白?
要知道,字符串本身是由字节数组组成,当你加压之后,它本身的顺序就会被打乱,而你UTF-8的字符集是有限的(不是任意的字节组合都可以被认为是字符的),
简单地说就是像你那样做,你把加压后的字节数组(经过压缩算法转换后的二进制数据)再转化为字符串,就会造成数据丢失的情况,于是操作也就不会成功了。

Ⅱ 为什么我所有的7Z文件都是解压错误的

出错原因:
1、复制粘贴文件遗漏。
2、下载不完整无法,进行解压。
3、磁盘空间不足。
4、解压缩7z本身出现bug。
解决办法:
1、重新下载要解压的内容。
2、重新下载加压缩7z。
3、如果都不行,还可以试试其他解压啊软件。

Ⅲ lol亚索bug怎么卡的,只是想知道

在泉水里一直q对面收到你q的伤害,多玩盒子里面有这个视频,你要是想看,可以去找找

Ⅳ 解压缩7Z文件出现错误

出错原因:
1、复制粘贴文件遗漏。
2、下载不完整无法,进行解压。
3、磁盘空间不足。
4、解压缩7z本身出现BUG。
解决办法:
1、重新下载要解压的内容。
2、重新下载加压缩7z。
3、如果都不行,还可以试试其他解压啊软件。

Ⅳ 压缩出什么bug了

“由于游戏中出现的一个Bug会导致Yasuo使用Last Breath(国服译名:狂风绝息斩)技能后会将敌方英雄无限定身,我们决定在我们修复这一Bug之前暂时让Yasuo下线,对大家造成的不便深表歉意。”
在《英雄联盟》中,Last Breath是Yasuo的大招,能够对一个被击飞的敌方英雄冲去,造成200/300/400(+1.5)物理伤害,并使范围内的所有被击飞的敌人在空中多停留1秒。同时重置断钢闪的旋风烈斩(Flow)层数。
目前,Riot还没有确认Yasuo重新上线的时间

Ⅵ 用WINRAR解压大的文件怎么卡住了

亲,出现此问题
大部分原因是电脑内存较小
或压缩出现老版本出现的一个BUG.建议
安装最新版的WINRAR后试试
并适当增加下内存。

Ⅶ 在压缩包里面打开的文件进行修改保存以后文件没有了

摘要 如果是直接双击打开了zip文件里面的文档,然后编辑,再直接保存,那实际上是保存到了临时文件,在关闭文件后,压缩软件会提醒是否要更新压缩文件,如果选择不更新,那这个修改后的临时文件就被丢弃,压缩包也不更新,更改就都没有了。

Ⅷ 压缩文件打开就会闪屏

这可能是由于你的系统出现问题。。或者是你的电脑中了病毒。解决方法,一般来说你可以装一个正版的杀毒软件。或者试着卸载掉你的压缩工具。重新在网站上找一个比较稳定的压缩工具。如果这都不行。那就试着让自己的电脑重新焕发光彩。重装一次。如果你的是品牌电脑。把自己的电脑安装好系统过后,装上基本的装机软件。做一个备份。(参考:一般的品牌电脑都有一键恢复。装好一键恢复过后就能做备份了。清华同方热键为CTRL+/。联想为F2。)如果是组装的就直接做一个GHOST备份。

Ⅸ 压缩文件winrar的bug

这个问题,应该是临时文件夹中有相同的文件。一般是在C:\Windows\Temp目录下。你可以查看一下。

热点内容
存储系统集成 发布:2024-11-14 11:14:54 浏览:584
云服务器搭建方法图解 发布:2024-11-14 11:14:53 浏览:309
挑战服务器吃鸡是什么 发布:2024-11-14 10:59:07 浏览:932
自缴社保算法 发布:2024-11-14 10:43:53 浏览:554
长安科尚哪个配置有电动滑门 发布:2024-11-14 10:37:10 浏览:198
随机策略算法 发布:2024-11-14 10:37:10 浏览:796
办公室电脑可以改无盘服务器吗 发布:2024-11-14 10:32:28 浏览:864
phpurl加密解密 发布:2024-11-14 10:27:38 浏览:334
什么是ewp服务器 发布:2024-11-14 10:27:33 浏览:200
16k存储器的地址范围 发布:2024-11-14 10:26:02 浏览:140