You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET解码Base64编码Zip文件后保存出现损坏问题求解

Zip文件Base64编解码后损坏的解决方法

你的代码存在三个核心问题,导致Zip文件编解码后损坏:

  • 用StreamReader读取二进制Zip文件:StreamReader是为文本文件设计的,二进制Zip文件包含大量非ASCII字节,用它读取会导致数据丢失或错误转换。
  • 使用ASCIIEncoding处理二进制数据:ASCII仅支持0-127范围内的字符,Zip文件中超过该范围的字节会被替换为默认占位符(如?),彻底破坏原始数据结构。
  • 用StreamWriter写入二进制数据:StreamWriter用于写入文本内容,写入二进制数据时会再次因编码问题篡改字节。

修正后的代码

直接操作字节数组,避免文本编码转换:

' Encode: 读取Zip文件字节并转Base64
Dim base64encoded As String
Dim zipBytes As Byte() = File.ReadAllBytes("E:\zip_test.zip")
base64encoded = Convert.ToBase64String(zipBytes)

' Decode: 从Base64转回字节并写入文件
Dim decodedBytes As Byte() = Convert.FromBase64String(base64encoded)
File.WriteAllBytes("e:\stcRepositorio\Entrena_To_Art\Enviar\testDEco.zip", decodedBytes)

说明

  • File.ReadAllBytes直接读取文件的原始字节数组,不会因编码丢失数据。
  • Convert.ToBase64String和Convert.FromBase64String仅负责字节与Base64字符串的转换,不涉及任何编码转换,保证数据完整性。
  • File.WriteAllBytes直接将字节数组写入文件,完全还原原始二进制数据。

内容的提问来源于stack exchange,提问作者chocano14

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 03:20:14