когда открываю в икселе, там битая кодировка и ничего не понятно
                  
                  
                  нашел в интернетах вот такое решение, но оно тоже выдает какую-то хрень, может сталкивался кто-то и может подсказать?
                  
                  
                  
                  
                  
                  csvFile, err := os.Create(path)
                  
                  
                  if err != nil {
                  
                  
                   logrus.Error("failed creating file: %s", err)
                  
                  
                   return err
                  
                  
                  }
                  
                  
                  tr := charmap.Windows1251.NewEncoder().Transformer
                  
                  
                  
                  
                  
                  wEnc := transform.NewWriter(csvFile, tr)
                  
                  
                  w := csv.NewWriter(wEnc)
                  
                  
                  
                  
                  
                  if err = w.WriteAll(records); err != nil {
                  
                  
                   return err
                  
                  
                  }
                  
                  
                  if err = csvFile.Close(); err != nil {
                  
                  
                   return err
                  
                  
                  }
                  
                  
                
golang.org/x/text/encoding/charmap попробуй
так в примере выше он и есть
кириллица не обязательно должна быть в 1251
package main import ( "encoding/csv" "log" "os" "golang.org/x/text/encoding/charmap" ) func main() { path := "example.csv" records := [][]string{ {"Привет", "мир"}, {"Пример", "текста"}, } csvFile, err := os.Create(path) if err != nil { log.Fatalf("failed creating file: %s", err) return } defer csvFile.Close() wEnc := charmap.Windows1251.NewEncoder().Writer(csvFile) w := csv.NewWriter(wEnc) if err := w.WriteAll(records); err != nil { log.Fatal(err) return } w.Flush() if err := w.Error(); err != nil { log.Fatal(err) return } }
прости, я не понимаю, в чем принципиальная разница с тем, что скинул я выше
сейчас другую идею пробую, если не получится, попробую это, спасибо)
так сразу это попробуйте, человека отпустите, он же вам прямо сейчас помогает, а свою сами потом попробуете, хоть узнаем помогло или нет))
я не могу одновременно сбилдить 2 решения(
Обсуждают сегодня