Go 如何在URL中转义句点字符
你好 比如说,我有一个URLGo 如何在URL中转义句点字符,go,Go,你好 比如说,我有一个URL http://someurl.com?someparam=my.dot.param 我知道句点(“.”-symbol)是一个有效的HTTP查询符号,但由于某些原因,我需要用“%2E”对其进行转义 我想使用类似于EscapedPath()的东西,但是,正如我前面提到的,句点(“.”-symbol)是一个有效的HTTP查询符号,所以我无法这样做 我所做的 1) 我删除字符串“my.dot.param”中的所有句点,并使用一些常量(如“\u remove\u this\
http://someurl.com?someparam=my.dot.param
我知道句点(“.”-symbol)是一个有效的HTTP查询符号,但由于某些原因,我需要用“%2E”对其进行转义
我想使用类似于EscapedPath()的东西,但是,正如我前面提到的,句点(“.”-symbol)是一个有效的HTTP查询符号,所以我无法这样做
我所做的
1) 我删除字符串“my.dot.param”中的所有句点,并使用一些常量(如“\u remove\u this\u dot”)
所以我得到了“我的移除这个点移除这个点参数””
2) 获取最终URL后:
u.RawQuery = q.Encode()
retURL := u.String()
我知道
所有的工作,但代码看起来很糟糕-有什么方法可以做到正确的吗?也许是标准图书馆
PS对不起,我的英语不好。有时需要糟糕的代码来解决网络中的错误 解决该问题的一种更简单的方法是将原始查询中的
替换为包含
的值
q.Set("someparam", "my.dot.param")
u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")
result := u.String()
.通常情况下,需要编写糟糕的代码来解决网络对等中的错误。更简单的代码是将查询中的
替换为原始的my.doc.param
值:u.RawQuery=strings.ReplaceAll(q.Encode(),“,“%2E”)
Cerise Limón,我记得-q.Encode()将对查询进行编码,%将被编码。因此,这不是一个选项我建议用q.Encode()
的结果上的%2E
替换
,而不是q.Encode()
的输入。
q.Set("someparam", "my.dot.param")
u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")
result := u.String()