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/mS6r 著作权归作者所有。请勿转载和采集!