Go语言URL编码方案
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编码路径段
就像一样QueryEscape
,net/url
Go中的程序包还具有另一个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编码方案相关推荐
- Go语言URL解码方案实践
Photo By: viktorhanacek 上一篇文章讲了Go语言的几种URL编码方法,这篇文章我们来讲一讲Go语言的URL解码方法.URL解码是编码的逆操作,可以将URL编码的字符转换成正常的形 ...
- c 语言url 编码转换,在线编码转换URL编码URL解码
APP说明 url编码是一种浏览器用来打包表单输入的格式.浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分 ...
- c语言解析url编码,在C语言中如何实现对编码后的URL进行解码
在C语言中如何实现对编码后的URL进行解码 关注:137 答案:2 信息版本:手机版 解决时间 2019-01-11 02:36 蓝琪梦莎 2019-01-10 13:44 在C语言中如何实现对编 ...
- R语言分类变量进行回归时的编码方案
本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文. 文章目录 演示数据 Dummy Coding simple coding Deviation coding Orthogonal P ...
- c语言实现url编码源码,URL encode 与 URL decode 的C语言实现
本文代码为从PHP代码中修改而来,只保留了2个函数. int php_url_decode(char *str, int len); char *php_url_encode(char const * ...
- go 变量大写_28. 一文了解Go语言中编码规范
大家好,我是明哥. 由于某些不可抗力,之前该专栏的所有内容都被删除了.因此之后的一段时间内,我会重新发布这些文章,先给已经看过的关注者提个醒. 本文原文:http://golang.iswbm.com ...
- php url传递 加号,坑爹的URL编码-PHP正确处理URL中的加号(+)
问题背景 接收客户端传入参数,base64解码失败,经过排查发现原因是参数上传前字符串中有+,但是PHP接收后,发现+变成了空格,导致base64解码失败. 测试验证 访问一个测试的接口 /inter ...
- URL编码及其其他编码问题
目录 URL编码 ASCII与拓展的ASCII 显然,有些ASCII可打印字符必须编码才能传输 抓包查看URL编码后的数据 unicode编码.utf-8编码.UCS.UTF ANSI.gb系列.Bi ...
- [Messy Note 1] 有关文本编辑语言及编码的一些概念
1.纯文本与富文本 纯文本--只有文字和基本的标点,如记事本.(纯文本格式:Plain Text Format) 富文本--可以有图以及各种特殊标点,分段等格式,如 Word.(富文本格式:Rich ...
- 五、大话HTTP协议-HTTP之URL编码、身份认证问题
在说明URL编码之前,先回顾编码和字符集的相关基础知识,再引出为什么URL中需要做编码,以及如何编码的.最后顺便介绍了下HTTP的身份认证问题.这些知识可谓是基础中的基础,重点中的重点了,不仅HTTP ...
最新文章
- c2 链路_POS链路不能打开的解决办法
- 「苹果牌」电动车要来了:最早明年见,还带着突破性电池技术
- socket 编程入门教程(三)TCP原理:7、TCP连接的关闭
- 【Android 高性能音频】AAudio 音频流 构建器 ( AAudio.h | 流构造器 | 音频设备配置 | 音频采样配置 | 构建器销毁 )
- Linear_algebra_02_行列式
- 请讲一下浏览器从接收到一个URL,到最后展示出页面,经历了哪些过程
- Linux TCP/IP中L4L3的实现框架:udp recv部分
- Apache2.4.29+Tomcat 8.5.29负载均衡群集最强解析
- php 5.6.30 漏洞,PHP 5.6.30 正式发布,安全漏洞修复
- 从“挂科大王”到网络安全布道者,云舒的那些“面壁”时刻
- 文件上传---利用表单提交
- DSP烧写程序的步骤流程
- DPDK初始化hugepages
- 【转帖】 嵌入式路线狂人计划--------个人认为。
- 从小米雷军的逆天布局你能读出什么?
- charles配置代理证书
- 基于socket的联机五子棋
- HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第5章CSS盒子模型
- altium designer 10 的AD10Crakc.zip解压后没有patch.exe
- 深入浅出JS—11 ES6中类class和extends的使用
热门文章
- 2020抖音无人直播技术:最新不封号无人直播的操作方法详细介绍
- msdia140.dll 已加载,但对DllRegisterServer 的调用失败, 错误代码: 0x80070005
- python利用PyQt5制作QQ空间登入客户端
- 计算机桌面图标扁了,电脑桌面图标及文字变扁怎么办
- Ubuntu 解决触摸板不识别问题
- echarts:迁徙图
- 2000元以内办公用计算机,2000元以内买什么笔记本 便宜实用笔记本【推荐】
- python模拟登录教务系统
- 断点续传实现文件下载进度条
- 沙龙回顾|你pick的程序小哥可以C位出道了吗?(内含PPT和演讲稿福利哦!)...