unzip解壓出的文件名稱是亂碼?
如果是用第三方壓縮程序壓縮的文件或文件夾名稱不是英文,用以下函數解壓后就會亂碼。
太菜不知如何不亂碼,求解。
func Unzip(src, dest string) error {reader, err := zip.OpenReader(src) if err != nil { return err }defer reader.Close()for _, f := range reader.File { rc, err := f.Open() if err != nil { log.Fatal(err) return err }defer rc.Close()fpath := filepath.Join(dest, f.Name)if f.FileInfo().IsDir() { err = os.MkdirAll(fpath, 0755)if err != nil { log.Fatal(err) return err } } else { var fdir string if lastIndex := strings.LastIndex(fpath, string(os.PathSeparator)); lastIndex > -1 { fdir = fpath[:lastIndex] }if len(f.Name) < 150 {err = os.MkdirAll(fdir, 0755) if err != nil { log.Fatal(err) return err }fi, err := os.OpenFi<愛尬聊_尬聊生活>le(fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) if err != nil { log.Fatal(err) return err }defer fi.Close()_, err = io.Copy(fi, rc) if err != nil { log.Fatal(err) return err } } } }return nil }
