i noticed that html/template escapes a URI using small letters. For
example, the following code outputs "%e5%af%bf%e5%8f%b8", not "
%E5%AF%BF%E5%8F%B8".
t, _ := template.New("foo").Parse(`{{define "T"}}<a
href="/{{.}}"></a>{{end}}`)
t.ExecuteTemplate(os.Stdout, "T", "寿司")
(See https://play.golang.org/p/9caza-3ojur )
This behavior is different from what template.URLQueryEscaper does. Also,
this is invalid with URL Standard (
https://url.spec.whatwg.org/#percent-encoded-bytes ). RFC 3986 Section 2.1
<https://tools.ietf.org/html/rfc3986#section-2.1> says "For consistency,
URI producers and normalizers should use uppercase hexadecimal digits for
all percent-encodings."
It seems that this line
<https://github.com/golang/go/blob/f4412aee749e9ca50e37427d169ce1a5543d7f6f/src/html/template/url.go#L137>
generates
these small letters. So we can fix this just by changing x to X.
But this behavior has remained for several years. Therefore I want to
confirm that this should be fixed, before filing an issue or sending a pull
req. Am I missing something?
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.