在进行mysql操作时,插入特殊字符,出现ERROR 1366, 一般是由于编码问题导致。
问题排查:
1、查看mysql表列编码,发现编码格式已经选择为uft8mb4,(utf8在插入特殊字符,表情的时候可能会出错)
2、代码里连接mysql选择的编码格式是否不对,查询发下charset=utf8mb4
3、要插入的字符串是否为utf8格式
fmt.Println("valid=", utf8.ValidString(str))
输出结果为false
4、对字符串进行utf8编码
utf8Encoder := mahonia.NewEncoder("UTF-8")
newStr:= utf8Encoder.ConvertString(str)
5、重新操作,成功!