I need to write a UTF-16 conded csv and I can't figure out how to. I found a lot of questions and answers about reading UTF-16 csvs but nothing about writing.
This is what I've tried so far:
package main
import (
"encoding/csv"
"fmt"
"os"
"golang.org/x/text/encoding/unicode"
)
func main() {
csvFile, err := os.Create("test.csv")
if err != nil {
panic(err)
}
defer csvFile.Close()
message := "weird characters: дгодг"
message, err = convertUtf8ToUtf16LE(message)
if err != nil {
panic(err)
}
fmt.Println(message)
csvWriter := csv.NewWriter(csvFile)
defer csvWriter.Flush()
csvWriter.Write([]string{message})
csvWriter.Write([]string{message})
}
func convertUtf8ToUtf16LE(message string) (string, error) {
encoder := unicode.UTF16(unicode.LittleEndian, unicode.UseBOM).NewEncoder()
return encoder.String(message)
}
But I get the following output in the csv:
weird characters: дгодг*矾攀椀爀搀 挀栀愀爀愀挀琀攀爀猀㨀 㐀㌄㸄㐄㌄
What am I doing wrong?