Photo By: https://picjumbo.com/author/viktorhanacek/


URL编码也称为 Percent encode(%),将不可打印、保留或非ASCII字符的字符串转换为可以在Internet上传输的通用格式。

下面是几种Go语言实现的URL编码方案

URL编码查询字符串

Go的net/url程序包包含一个内置方法QueryEscape,该方法称为转义/编码字符串,以便可以将其安全地放置在URL查询中。以下示例演示了如何在Golang中编码查询字符串

package mainimport {"fmt""net/url"
}func main() {query := "Hello 中国"fmt.Println(url.QueryEscape(query))
}

输出

Hello+%E4%B8%AD%E5%9B%BD

URL编码多个查询参数

如果要一次编码多个查询参数,则可以创建一个url.Values由Query param到value映射组成的结构,并使用该url.Values.Encode()方法对所有查询param进行编码。下面的示例演示

package main
import ("fmt""net/url"
)func main() {params := url.Values{}params.Add("name", "中国")params.Add("phone", "+8613000000000")fmt.Println(params.Encode())
}

输出

fmt.Println(params.Encode())

URL编码路径段

就像一样QueryEscapenet/urlGo中的程序包还具有另一个PathEscape()用于编码字符串的函数,以便可以将其安全地放置在URL的路径段中,此方法会把空格编码为%20

package mainimport ("fmt""net/url"
)func main() {path := "Hello 中国+"fmt.Println(url.PathEscape(path))
}

输出

Hello%20%E4%B8%AD%E5%9B%BD+

通过编码各个部分来构建完整的URL

可以通过对URL的不同部分进行不同方式的编码构建完整的URL,下面是一个完整的实例

package mainimport ("fmt""net/url"
)func main() {baseUrl, err := url.Parse("http://www.test.com")if err != nil {fmt.Println("Malformed URL: ", err.Error())return }// add Path SegmentbaseUrl.Path = "subpath? reversed character"// prepare query parametersparams := url.Values{}params.Add("q", "中国")params.Add("u", "+86-13000000000")// add Query Parameters to the URLbaseUrl.RawQuery = params.Encode()fmt.Printf("Encode URL is %q\n", baseUrl.String())
}

Go语言URL编码方案相关推荐

  1. Go语言URL解码方案实践

    Photo By: viktorhanacek 上一篇文章讲了Go语言的几种URL编码方法,这篇文章我们来讲一讲Go语言的URL解码方法.URL解码是编码的逆操作,可以将URL编码的字符转换成正常的形 ...

  2. c 语言url 编码转换,在线编码转换URL编码URL解码

    APP说明 url编码是一种浏览器用来打包表单输入的格式.浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分 ...

  3. c语言解析url编码,在C语言中如何实现对编码后的URL进行解码

    在C语言中如何实现对编码后的URL进行解码 关注:137  答案:2  信息版本:手机版 解决时间 2019-01-11 02:36 蓝琪梦莎 2019-01-10 13:44 在C语言中如何实现对编 ...

  4. R语言分类变量进行回归时的编码方案

    本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文. 文章目录 演示数据 Dummy Coding simple coding Deviation coding Orthogonal P ...

  5. c语言实现url编码源码,URL encode 与 URL decode 的C语言实现

    本文代码为从PHP代码中修改而来,只保留了2个函数. int php_url_decode(char *str, int len); char *php_url_encode(char const * ...

  6. go 变量大写_28. 一文了解Go语言中编码规范

    大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...

  7. php url传递 加号,坑爹的URL编码-PHP正确处理URL中的加号(+)

    问题背景 接收客户端传入参数,base64解码失败,经过排查发现原因是参数上传前字符串中有+,但是PHP接收后,发现+变成了空格,导致base64解码失败. 测试验证 访问一个测试的接口 /inter ...

  8. URL编码及其其他编码问题

    目录 URL编码 ASCII与拓展的ASCII 显然,有些ASCII可打印字符必须编码才能传输 抓包查看URL编码后的数据 unicode编码.utf-8编码.UCS.UTF ANSI.gb系列.Bi ...

  9. [Messy Note 1] 有关文本编辑语言及编码的一些概念

    1.纯文本与富文本 纯文本--只有文字和基本的标点,如记事本.(纯文本格式:Plain Text Format) 富文本--可以有图以及各种特殊标点,分段等格式,如 Word.(富文本格式:Rich ...

  10. 五、大话HTTP协议-HTTP之URL编码、身份认证问题

    在说明URL编码之前,先回顾编码和字符集的相关基础知识,再引出为什么URL中需要做编码,以及如何编码的.最后顺便介绍了下HTTP的身份认证问题.这些知识可谓是基础中的基础,重点中的重点了,不仅HTTP ...

最新文章

  1. c2 链路_POS链路不能打开的解决办法
  2. 「苹果牌」电动车要来了:最早明年见,还带着突破性电池技术
  3. socket 编程入门教程(三)TCP原理:7、TCP连接的关闭
  4. 【Android 高性能音频】AAudio 音频流 构建器 ( AAudio.h | 流构造器 | 音频设备配置 | 音频采样配置 | 构建器销毁 )
  5. Linear_algebra_02_行列式
  6. 请讲一下浏览器从接收到一个URL,到最后展示出页面,经历了哪些过程
  7. Linux TCP/IP中L4L3的实现框架:udp recv部分
  8. Apache2.4.29+Tomcat 8.5.29负载均衡群集最强解析
  9. php 5.6.30 漏洞,PHP 5.6.30 正式发布,安全漏洞修复
  10. 从“挂科大王”到网络安全布道者,云舒的那些“面壁”时刻
  11. 文件上传---利用表单提交
  12. DSP烧写程序的步骤流程
  13. DPDK初始化hugepages
  14. 【转帖】 嵌入式路线狂人计划--------个人认为。
  15. 从小米雷军的逆天布局你能读出什么?
  16. charles配置代理证书
  17. 基于socket的联机五子棋
  18. HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第5章CSS盒子模型
  19. altium designer 10 的AD10Crakc.zip解压后没有patch.exe
  20. 深入浅出JS—11 ES6中类class和extends的使用

热门文章

  1. 2020抖音无人直播技术:最新不封号无人直播的操作方法详细介绍
  2. msdia140.dll 已加载,但对DllRegisterServer 的调用失败, 错误代码: 0x80070005
  3. python利用PyQt5制作QQ空间登入客户端
  4. 计算机桌面图标扁了,电脑桌面图标及文字变扁怎么办
  5. Ubuntu 解决触摸板不识别问题
  6. echarts:迁徙图
  7. 2000元以内办公用计算机,2000元以内买什么笔记本 便宜实用笔记本【推荐】
  8. python模拟登录教务系统
  9. 断点续传实现文件下载进度条
  10. 沙龙回顾|你pick的程序小哥可以C位出道了吗?(内含PPT和演讲稿福利哦!)...