func SubstrByByte(str string, length int) string { if len([]byte(str))<=length{ return str } bs := []byte(str)[:length] 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 { return string(bs[:i+cl]) } return string(bs[:i]) } } return "" } func main() { str :="你好,我們正在進行測試測試111活動,只要邀請1位好友添加我\n的微信就可以獲得獎品 參與流程:①點擊下面鏈接,生成專屬海報;②進入鏈接后長按保存海報,將海報發給好友或朋友圈 ③邀請1位好友掃碼添加,即可成功獲得獎品 ④進入鏈接點擊\n查看進度,完成任務后點擊「領取獎勵」即可領取哦 注意事項:請不要直接轉發活動鏈接給好友,是無法成功記錄數據的哦~海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉\n發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海報轉發海" fmt.Println(SubstrByByte(str,738)) }