我有下一个代码。主要.go:package mainimport "fmt"import "net/url"func main() { connString := "postgresql://postgres:password@192.168.1.10:5432/postgres" parsedUrl, err := url.Parse(connString) if err != nil { fmt.Println(err) } fmt.Println("=") fmt.Println(parsedUrl.User) fmt.Println("=")}执行:$ go run main.go=postgres:password=到目前为止,一切顺利,您可以看到我们成功地获得了.当我更改其中有绑定的密码时,会出现问题。parsedUrl.Userpostgres:passwordpassword#connString := "postgresql://postgres:password#@192.168.1.10:5432/postgres"然后,再次运行它,它输出如下:==您可以看到代码无法获取 。它看起来在html中会被视为锚点,这是根本原因吗?postgres:password##总而言之,我的问题是:我如何修复我的代码来处理我在密码中的情况?#
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
您可以使用url.QueryEscape()
例
package main
import (
"fmt"
"net/url"
)
func main() {
connString := `postgresql://postgres:` + url.QueryEscape(`password#`) + `@192.168.1.10:5432/postgres`
xurl, err := url.Parse(connString)
if err != nil {
fmt.Println(err)
}
fmt.Println("=")
fmt.Println(xurl.User.Username())
fmt.Println(xurl.User.Password())
fmt.Println("=")
}
- 2 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消