我有以下的代码,它尝试UUID生16个字节(带的0x0A内)保存到CSV格式如何在UML中将UUID原始16字节写入CSV?
package main
import (
"encoding/csv"
"github.com/satori/go.uuid"
"log"
"os"
)
func main() {
u, err := uuid.FromString("e1393c62-877a-4adc-8ffb-f1bf0a337c5f")
if err != nil {
log.Fatal(err)
}
csv_file, err := os.OpenFile("csv_wtf.csv", os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
log.Fatal(err)
}
s := string(u.Bytes())
log.Printf("len(s)=%d",len(s))
csv_writer := csv.NewWriter(csv_file)
csv_writer.UseCRLF = false
csv_writer.Write([]string{s})
csv_writer.Flush()
finfo, err := csv_file.Stat()
if err != nil {
log.Fatal(err)
}
log.Printf("size csv_wtf.csv = %d", finfo.Size())
csv_file.Close()
}
这段代码的输出数据为CSV与添加额外的字节
2017/04/16 12:37:14 len(s)=16
2017/04/16 12:37:14 size csv_wtf.csv = 29
为什么编码/ CSV当我的字符串超过范围时添加额外的字节(请参阅https://golang.org/src/encoding/csv/writer.go#L38,https://golang.org/src/encoding/csv/writer.go#L50和https://golang.org/src/encoding/csv/writer.go#L76)?
有人可以帮我找到CSV包不会奇怪的转换吗?
CSV文件中的数据看起来像什么,看起来像什么。通过观察长度,很难看到会发生什么。 –
我需要在https://github.com/yandex/clickhouse数据库中插入FixedString(16)优化的UUID存储 – Slach