170 похожих чатов

Добрый день, столкнулся с абсолютно типовой задачей формирую csv с кириллицей,

когда открываю в икселе, там битая кодировка и ничего не понятно
нашел в интернетах вот такое решение, но оно тоже выдает какую-то хрень, может сталкивался кто-то и может подсказать?

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
}

9 ответов

8 просмотров

golang.org/x/text/encoding/charmap попробуй

Alexey-Vityazev Автор вопроса
Rostislav Teryaev
golang.org/x/text/encoding/charmap попробуй

так в примере выше он и есть

кириллица не обязательно должна быть в 1251

Alexey Vityazev
так в примере выше он и есть

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 } }

Alexey-Vityazev Автор вопроса
Rostislav Teryaev
package main import ( "encoding/csv" "log" ...

прости, я не понимаю, в чем принципиальная разница с тем, что скинул я выше

Alexey-Vityazev Автор вопроса
Rostislav Teryaev
работает?

сейчас другую идею пробую, если не получится, попробую это, спасибо)

Alexey Vityazev
сейчас другую идею пробую, если не получится, попр...

так сразу это попробуйте, человека отпустите, он же вам прямо сейчас помогает, а свою сами потом попробуете, хоть узнаем помогло или нет))

Alexey-Vityazev Автор вопроса

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
8
Почему никто ещё не написал квантовую виртуальную машину на Windows?
КТ315
7
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Карта сайта