diff --git a/utils/utils.go b/utils/utils.go index 4e896e6c..8dd9fd42 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -288,44 +288,15 @@ func LimitStringLen(str string, maxByteCount int) (limitedStr string) { // 限制的是字符数,不是字节数 func LimitUTF8StringLen(str string, maxRuneCount int) (limitedStr string) { - str2 := "" - bs := []byte(str) - bl := 0 - for i := len(bs) - 1; i >= 0; i-- { - switch { - case bs[i] >= 0 && bs[i] <= 127: - return string(bs[:i+1]) - case bs[i] >= 128 && bs[i] <= 191: - bl++ - case bs[i] >= 192 && bs[i] <= 253: - cl := 0 - switch { - case bs[i]&252 == 252: - cl = 6 - case bs[i]&248 == 248: - cl = 5 - case bs[i]&240 == 240: - cl = 4 - case bs[i]&224 == 224: - cl = 3 - default: - cl = 2 - } - if bl+1 == cl { - str2 = string(bs[:i+cl]) - } - str2 = string(bs[:i]) - } - } if maxRuneCount > 0 { - if len(str2) > maxRuneCount { - runeList := []rune(str2) + if len(str) > maxRuneCount { + runeList := []rune(str) if len(runeList) > maxRuneCount { - str2 = string(runeList[:maxRuneCount]) + str = string(runeList[:maxRuneCount]) } } } - return str2 + return str } // 限制的是字节数,正常处理乱码