登录
首页 >  Golang >  Go问答

Golang中有内置的URL编码函数吗?

来源:stackoverflow

时间:2024-02-22 12:09:25 115浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《Golang中有内置的URL编码函数吗?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

许多语言(例如 javascript 和 php)都有 urlencode() 函数,可用于对查询字符串参数的内容进行编码。

"example.com?value=" + urlencode("weird string & number: 123")

这可确保对 &%、空格等进行编码,以便您的网址保持有效。

我看到 golang 提供了一个 url 包,并且它有一个用于查询字符串值的 encode() 函数。这很有效,但在我的情况下,它需要我解析 url,而我宁愿不这样做。

我的 url 由客户端声明,不会更改顺序,并且潜在的重复参数(这是 url 中的合法参数)可能会受到影响。所以我使用 replace() 像这样:

func tweak(url string) string {
  url.replace("@value@", new_value, -1)
  return url
}

@value@ 预计用作查询字符串参数的值,如下所示:

example.com?username=@value@

所以,我想做的是:

url.Replace("@VALUE@", urlencode(new_value), -1)

golang中有这样的函数吗?


解决方案


是的,您可以使用这些函数来做到这一点:

package main

import (
    "encoding/base64"
    "fmt"
    "net/url"
)

func main() {
    s := "enc*de Me Plea$e"
    fmt.Println(EncodeParam(s))
    fmt.Println(EncodeStringBase64(s))
}

func EncodeParam(s string) string {
    return url.QueryEscape(s)
}

func EncodeStringBase64(s string) string {
    return base64.StdEncoding.EncodeToString([]byte(s))
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Golang中有内置的URL编码函数吗?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>