// Marshal 은 기본적으로 특수문자들이 유니코드 escape 으로 인코딩된다.
// json/encoding.go Marshal() 주석 중 발췌
// String values encode as JSON strings coerced to valid UTF-8,
// replacing invalid bytes with the Unicode replacement rune.
// The angle brackets "<" and ">" are escaped to "\u003c" and "\u003e"
// to keep some browsers from misinterpreting JSON output as HTML.
// Ampersand "&" is also escaped to "\u0026" for the same reason.
// This escaping can be disabled using an Encoder with DisableHTMLEscaping.
// <, >, & ====> \u003c, \u003e, \u0026
// Marshal 대신 encoder 를 사용하여 escape 없이 인코딩할 수 있다.
bytesbuffer1 := new(bytes.Buffer)
encoder := json.NewEncoder(bytesbuffer1)
// html escape 없이 인코딩
encoder.SetEscapeHTML(false)
encoder.SetIndent("", " ")
encoder.Encode("<script>ysoftman</script>")
fmt.Println("jsonString = ", bytesbuffer1.String())
str = str.replace(/\\u003c/g, '<');
str = str.replace(/\\u003e/g, '>');
str = str.replace(/\\u0026/g, '&');
comments:
댓글 쓰기