golang是一種強大的編程語言,支持在不同的平臺上進行快速的開發。其中,json是golang中處理數據的重要方式之一,但在使用過程中,我們常常會遇到中文亂碼的問題。
func main() { type Person struct { Name string Age int } p := Person{ Name: "張三", Age: 19, } b, err := json.Marshal(p) if err != nil { fmt.Println("json encode failed:", err) return } fmt.Println(string(b)) }
上述代碼演示了golang中使用json進行編碼的過程。在將結構體Person編碼為json字符串后,我們通過fmt.Println輸出結果。但實際上,我們會發現輸出中文時會出現亂碼的情況。
那么該如何避免中文亂碼呢?其實很簡單,只需要在編碼時使用json包提供的Marshal函數,并設置一個選項即可。
func main() { type Person struct { Name string Age int } p := Person{ Name: "張三", Age: 19, } b, err := json.Marshal(p) if err != nil { fmt.Println("json encode failed:", err) return } fmt.Println(string(b)) // 輸出中文亂碼 // 設置選項,避免中文亂碼 b, err = json.MarshalIndent(p, "", " ") if err != nil { fmt.Println("json encode failed:", err) return } fmt.Println(string(b)) }
此次我們在編碼時添加了json.MarshalIndent選項,將json字符串進行縮進,從而避免了中文亂碼的情況。
經過這個簡單的案例,我們發現golang中json的使用并不難,而且只需要設置一個選項就能輕松解決中文亂碼問題。
上一篇python 按照行讀
下一篇mysql切換檢測