我是新手,我被一些非常琐碎的事情所困扰,所以我寻求您的帮助,也许有人知道为什么会发生这种行为:
我想在模板中输出 url 对象的查询参数字符串,但显然是因为“?” char 放在变量前面,(整个)输出是 url 编码的。问号在go模板中有特殊含义吗?
而不是param1=value1&value2=param2,输出是param1%3dvalue1%26value2%3dparam2
go 操场中的示例
该html/template包的 Go 文档解释了行为(https://golang.org/pkg/html/template/):
这个包使用的安全模型假设模板作者是可信的,而 Execute 的数据参数不是。下面提供了更多详细信息。
关于这一点的事情是,您真的应该三思而后行,为什么不希望 Go 将此安全行为应用于您的模板。
然后,如果您真的确定不想转义字符串,请使用template.URL字符串:https : //play.golang.org/p/kfv2tH6WDG