猿问

如何在 URL 中转义句点字符

我有一个网址,比如说


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

我知道句点(“.” - 符号)是一个有效的 HTTP 查询符号,但由于某些原因,我需要用“%2E”对其进行转义


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


我做了什么。


1)我用一些常数(如“_remove_this_dot_”)删除字符串“ my.dot.param ”中的所有句点,所以我得到“ 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")

一切正常,但代码看起来很糟糕 - 有什么方法可以让它正确吗?也许使用标准库?


慕标5832272
浏览 94回答 1
1回答

富国沪深

有时需要糟糕的代码来解决网络对等点中的错误。问题中的一种更简单的方法是将.创建原始查询的原始查询中的 替换为包括..q.Set("someparam", "my.dot.param")u.RawQuery = strings.ReplaceAll(q.Encode(), ".", "%2E")result := u.String()
随时随地看视频慕课网APP

相关分类

Go
我要回答