go学习-JS的encodeURIComponent转go

背景

encodeURIComponent() 函数通过将特定字符的每个实例替换成代表字符的 UTF-8 编码的一个、两个、三个或四个转义序列来编码 URI(只有由两个"代理"字符组成的字符会被编码为四个转义序列)。

与 encodeURI() 相比,此函数会编码更多的字符

JS的encodeURIComponent 转为Go的net/url标准库中提供的QueryEscape

encodeURIComponent

以下字符不会被编码:

复制代码
字母(A-Z,a-z)和数字(0-9)
特定字符:-、_、.、!、~、*、'、(、)、

这些字符在encodeURIComponent中被视为保留字符,不需要进行编码。

JS

js 复制代码
console.log(encodeURI('Hello, 世1+2界!'));

输出 Hello%2C%20%E4%B8%96%E7%95%8C!

Go

go 复制代码
func TestDemo(t *testing.T) {
	str := "Hello, 世1+2界!"
	encodedStr := url.QueryEscape(str)
	// 如果是go解码,则可执行可不执行,返回的结果都是一样的
	encodedStr = strings.Replace(encodedStr, "+", "%20", -1)
	fmt.Println(encodedStr)

	decodedStr, err := url.QueryUnescape(encodedStr)
	if err != nil {
		fmt.Println("解码失败:", err)
		return
	}

	fmt.Println(decodedStr)
}

输出 Hello%2C%20%E4%B8%961%2B2%E7%95%8C%21

总结

还是有些许差异,如果代码中涉及转换,注意特殊字符是否会用到

对于空格这种,用不到也就不用操这么多心了

相关推荐
噜噜噜阿鲁~14 分钟前
python学习笔记 | 8.2、函数式编程-返回函数
笔记·python·学习
恶猫23 分钟前
网页自动化模拟操作时,模拟真实按键触发事件【终级方案】
前端·javascript·自动化·vue·网页模拟
小郑加油33 分钟前
python学习Day8-9天:函数(def)的基础运用
python·学习
学掌门36 分钟前
数据分析师初级—中级—高级,每个阶段都需要学习什么?
大数据·学习·数据分析·数据分析师
rainbow72424440 分钟前
零基础职场人线上学习AI,是否支持线上考试?
人工智能·学习
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_2:(表单分组与高级输入控件实战)
前端·javascript·css·ui·html
handler011 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
噜噜噜阿鲁~1 小时前
python学习笔记 | 8.3、函数式编程-匿名函数
笔记·python·学习
星幻元宇VR1 小时前
VR单人地震体验平台助力防灾减灾教育
科技·学习·安全·vr·虚拟现实
minstbe1 小时前
【AI本体论研究学习】本体的核心元素:类、属性、实例与关系——拆解 OWL/RDF 四大基石
人工智能·学习