如何转义URL中的句点字符



您好!

我有一个URL,比方说

http://someurl.com?someparam=my.dot.param

我知道句点("."-符号(是一个有效的HTTP查询符号,但由于某些原因,我需要用"%2E"转义它

我想使用类似于EscapedPath((的东西,但是,正如我之前提到的,句点("."-符号(是一个有效的HTTP查询符号,所以我不能这样做。

我做了什么。

1( 我删除字符串">my.dot.param"中带有一些常量的所有句点(如"_remove_this_dot_"(所以我得到了">my_remove_this_dot_dot_remove_this_dot_param">

2( 在我得到最终URL:之后

u.RawQuery = q.Encode()
retURL := u.String()

我做

result :=  strings.ReplaceAll(retURL, "_remove_this_dot_", "%2E")

一切正常,但代码看起来很糟糕——有什么方法可以纠正吗?也许有标准库?

PS抱歉我英语不好。

有时需要糟糕的代码来解决网络对等中的错误。

与问题中的方法相比,一种更简单的方法是用包括.的值替换原始查询中创建原始查询的.

q.Set("someparam", "my.dot.param")
u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")
result := u.String()

在操场上跑步。

最新更新