diff --git a/encode.go b/encode.go index c921835..a45ffd9 100644 --- a/encode.go +++ b/encode.go @@ -982,10 +982,10 @@ func (e *encodeState) string(s string, escapeHTML bool) int { e.WriteString(s[start:i]) } if c < 0x10000 { - e.WriteString(fmt.Sprintf(`\u%04X`, c)) + fmt.Fprintf(e, `\u%04X`, c) } else { r1, r2 := utf16.EncodeRune(c) - e.WriteString(fmt.Sprintf(`\u%04X\u%04X`, r1, r2)) + fmt.Fprintf(e, `\u%04X\u%04X`, r1, r2) } i += size start = i @@ -1077,10 +1077,10 @@ func (e *encodeState) stringBytes(s []byte, escapeHTML bool) int { e.Write(s[start:i]) } if c < 0x10000 { - e.WriteString(fmt.Sprintf(`\u%04X`, c)) + fmt.Fprintf(e, `\u%04X`, c) } else { r1, r2 := utf16.EncodeRune(c) - e.WriteString(fmt.Sprintf(`\u%04X\u%04X`, r1, r2)) + fmt.Fprintf(e, `\u%04X\u%04X`, r1, r2) } i += size start = i diff --git a/encode_test.go b/encode_test.go index fb90013..8387eb0 100644 --- a/encode_test.go +++ b/encode_test.go @@ -496,8 +496,8 @@ func TestStringBytes(t *testing.T) { esBytes := &encodeState{} esBytes.stringBytes([]byte(s), escapeHTML) - enc := es.Buffer.String() - encBytes := esBytes.Buffer.String() + enc := es.String() + encBytes := esBytes.String() if enc != encBytes { i := 0 for i < len(enc) && i < len(encBytes) && enc[i] == encBytes[i] {