golang zip压缩文件并设置字符编码
以下是使用Golang进行zip压缩文件并设置字符编码的示例代码:
package main
import (
"archive/zip"
"io"
"os"
)
func main() {
// 压缩文件名
zipFileName := "example.zip"
// 要压缩的文件列表
fileNames := []string{"file1.txt", "file2.txt"}
// 设置字符编码为UTF-8
charset := "UTF-8"
// 创建zip文件
zipFile, err := os.Create(zipFileName)
if err != nil {
panic(err)
}
defer zipFile.Close()
// 创建zip写入器
zipWriter := zip.NewWriter(zipFile)
defer zipWriter.Close()
// 循环遍历文件列表,将每个文件添加到zip文件中
for _, fileName := range fileNames {
// 打开文件
file, err := os.Open(fileName)
if err != nil {
panic(err)
}
defer file.Close()
// 创建zip文件头
zipHeader := &zip.FileHeader{
Name: fileName,
Method: zip.Deflate,
Flags: 0x800, // 设置字符编码为UTF-8
}
zipHeader.SetExtra([]byte("UTF-8"))
// 将zip文件头写入zip文件
zipWriter.WriteHeader(zipHeader)
// 将文件内容复制到zip文件中
_, err = io.Copy(zipWriter, file)
if err != nil {
panic(err)
}
}
}
在上面的代码中,我们首先创建了一个zip文件,然后创建一个zip写入器。接下来,我们循环遍历文件列表,将每个文件添加到zip文件中。在创建zip文件头时,我们设置了字符编码为UTF-8,并将其写入zip文件。最后,我们将文件内容复制到zip文件中,并关闭文件和写入器。
原文地址: https://www.cveoy.top/t/topic/bp3Y 著作权归作者所有。请勿转载和采集!