0
由於某些原因,將字符串編碼爲字節,我想知道它是否是一個錯誤。請參見下面的代碼:爲什麼要寫000/s而不是字符串?
ip, _, err := net.ParseCIDR(cidr)
if err!=nil{
log.Panicf("can't parse cidr %s, err was %v", cidr, err)
}
type Ip struct{
Ip string
}
ips := string(ip)
j:= Ip{
Ip: ips,
}
b, err := json.Marshal(j)
if err != nil {
log.Printf("error:", err)
}
fmt.Fprintln(w, string(b))
它打印:
{"Ip":"\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ufffd\ufffd\ufffd\ufffd\u0007+"}
我從EPEL軟件庫(紅帽)運行圍棋。我也做了一個返回類似結果的片段。
我怎麼知道?在goDoc上,我只能看到IP的類型是[]字節,所以我認爲它只是一個字節片段。 – user3721073
它是一個字節片段。但是這些字節是文字IP地址八位字節。字節值「255」不會打印爲文字「255」字符串。該字符串將分別由3個字節組成,分別爲ASCII字符'2','5'和'5'。 – jimt