Jas*_*son 5

在Go中,字符串实际上只是字节序列,对字符串进行索引会生成bytes。因此,您可以通过将字符串切成4kB子字符串来简单地将其拆分为子字符串。

unicode/utf8
package httputil

import "unicode/utf8"

const maxLen = 4096

func SplitHeader(longString string) []string {
    splits := []string{}

    var l, r int
    for l, r = 0, maxLen; r < len(longString); l, r = r, r+maxLen {
        for !utf8.RuneStart(longString[r]) {
            r--
        }
        splits = append(splits, longString[l:r])
    }
    splits = append(splits, longString[l:])
    return splits
}
[]bytestring[]byte