Go 计算Utf8字符串的长度 不要超过mysql字段的最大长度
背景:
我有一个mysql的字段,是utf8格式的,但有时候前端传的字符串会超长,为此我需要在后端接口,先判断是否超长,如果超长,则报错提示前端。
代码:
// 计算utf8下,字符串长度,确保字符串的长度不要超过mysql的字段的最大长度
func utf8Length(s string) int {
length := 0
for _, char := range s {
if char <= 127 {
length++
} else if char <= 2047 {
length += 2
} else if char <= 65535 {
length += 3
} else {
length += 4
}
}
return length
}