汉字编码问题golang

时间:2018-06-20 11:32:39

标签: csv go encoding character

我正在尝试将包含汉字的字符串写入文件,但是我遇到了编码问题(得到类似10𥉥•‰∏äÁªªÈ™™之类的文字)

这就是我所拥有的。

csvContent, err := gocsv.MarshalString(&csvTranslation) // Get all clients as CSV string
    if err != nil {
        panic(err)
    }
    d1 := []byte(string(csvContent))
    ioutil.WriteFile("result.csv", d1, 0644)

您能指出我所缺少的吗

1 个答案:

答案 0 :(得分:1)

您使用Go UTF-8编码的string,并且错误地将其解释为扩展ASCII字节。

例如,

package main

import (
    "fmt"
)

func main() {
    utf8 := "汉字 漢字"
    fmt.Println(utf8)
    var ascii string
    for i := 0; i < len(utf8); i++ {
        ascii += string(utf8[i])
    }
    fmt.Println(ascii)
}

游乐场:https://play.golang.org/p/HTPWhPO7OVS

输出:

汉字 漢字
æ±å­ æ¼¢å­