Golang 处理emoji表情无法存入mysql utf8 字段
通过代码把不符合规范的字符过滤掉
原理为遍历字符串字符,检查字符在utf8中的长度,因为mysql utf8 仅能处理最大3字节的字符
1 2 3 4 5 6 7 8 9 10
| //FilterUtf8SizeGreaterThree mysql数据库utf8只能存储字节3的utf8数据,这里把不符合的字符过滤掉 func FilterUtf8SizeGreaterThree(content string) string { bf := bytes.NewBufferString("") for _, value := range content { if size := utf8.RuneLen(value); size <= 3 { bf.WriteRune(value) } } return bf.String() }
|
还有一种办法是直接把数据库表或对应字段换成utf8mb4