Golang JSON marshaling将表情符号转换为问号

时间:2016-05-31 19:50:50

标签: mysql json go

我有一个与MySQL数据库通信的golang Web服务器。用户可以发表评论,这些评论可以包含表情符号,以及其他utf8mb4字符。我的数据库能够存储和检索这些表情符号字符,但是,当JSON封送/非拼写,表情符号被破坏时。是否可以使用Go的本机编码/ json包来解码/编码utf8mb4字符?如果是这样,我将如何这样做。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方法。以前我将JSON编组为[]字节,然后在我的http.ResponseWriter上调用w.Write(jsonBytes)。通过将字节转换为字符串,编写适当的内容类型标头并使用io.WriteString,我可以防止错误。这是我的代码:

returnJSON, error := json.Marshal(value)
if error != nil { Error(w, error); return }
w.Header().Set("Content-Type", "application/json; charset=utf-8")
io.WriteString(w, string(returnJSON))