我正在使用 golang 的标准包存档/zip 将多个文件打包成一个 zipfile。
这是我的测试代码:
package main
import (
"archive/zip"
"log"
"os"
)
func main() {
archive, _ := os.Create("/tmp/测试file.zip")
w := zip.NewWriter(archive)
// Add some files to the archive.
var files = []struct {
Name, Body string
}{
{"测试.txt", "test content: 测试"},
{"test.txt", "test content: test"},
}
for _, file := range files {
f, err := w.Create(file.Name)
if err != nil {
log.Fatal(err)
}
_, err = f.Write([]byte(file.Body))
if err != nil {
log.Fatal(err)
}
}
err := w.Close()
if err != nil {
log.Fatal(err)
}
}
结果:
我得到了一个名为测试file.zipunder的 zip 文件/tmp。
之后unzip,我得到两个文件:test.txt, ц╡ЛшпХ.txt,这是一团糟。
两个文件中的内容都符合预期。
为什么会发生这种情况以及如何解决这个问题?
相关分类