为什么需要编码和解码

1.是因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的;

2.因为 url 对字符有限制,比如把一个邮箱放入 url,就需要使用 urlencode 函数,因为 url 中不能包含 @ 字符;

3.url转义其实也只是为了符合url的规范而已。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。

哪些字符是需要转化的呢?

1. ASCII 的控制字符

这些字符都是不可打印的,自然需要进行转化。

2. 一些非ASCII字符

这些字符自然是非法的字符范围。转化也是理所当然的了。

3. 一些保留字符

很明显最常见的就是“&”了,这个如果出现在url中了,那你认为是url中的一个字符呢,还是特殊的参数分割用的呢?

4. 就是一些不安全的字符了。

例如:空格。为了防止引起歧义,需要被转化为“+”。

明白了这些,也就知道了为什么需要转化了,而转化的规则也是很简单的。

按照每个字符对应的字符编码,不是符合我们范围的,统统的转化为%的形式也就是了。自然也是16进制的形式。

5.和字符编码无关

通过urlencode的转化规则和目的,我们也很容易的看出,urleocode是基于字符编码的。同样的一个汉字,不同的编码类型,肯定对应不同的urleocode的串。gbk编码的有gbk的encode结果。

apache等服务器,接受到字符串后,可以进行decode,但是还是无法解决编码的问题。编码问题,还是需要靠约定或者字符编码的判断解决。

因此,urleocode只是为了url中一些非ascii字符,可以正确无误的被传输,至于使用哪种编码,就不是encode所关心和解决的问题了。

编码问题,不是urlencode所要解决的。

golang之UrlEncode编码/UrlDecode解码

package main

import(
"fmt"
"net/url"
) func main() {
var urlStr string = "傻了吧:%:%@163& .html.html"
escapeUrl := url.QueryEscape(urlStr)
fmt.Println("编码:",escapeUrl) enEscapeUrl, _ := url.QueryUnescape(escapeUrl)
fmt.Println("解码:",enEscapeUrl)
}

输出

编码: %E5%82%BB%E4%BA%86%E5%90%A7%3A%25%3A%25%40163%26+.html.html

解码: 傻了吧:%:%@163& .html.html

golang之UrlEncode编码/UrlDecode解码的更多相关文章

  1. [SoapUI] UrlEncode编码/UrlDecode解码网站

    http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码:

  2. UrlEncode编码/UrlDecode解码

    public class encode {    public static void main(String[] args) throws UnsupportedEncodingException ...

  3. UrlEncode编码/UrlDecode解码 - 站长工具

    http://tool.chinaz.com/tools/urlencode.aspx

  4. urlencode编码,解码

    对字符串传入的字典参数进行urlencode编码,就需要用到两个方法urlencode和quoteurlencode方法传字典参数 from urllib.parse import urlencode ...

  5. php 编码和解码的函数

    URL: urlencode(); //编码 urldecode(); //解码 URL与数组互转: parse_url () http_build_query() base64: base64_en ...

  6. Js/Jquery- Base64和UrlEncode编码解码

    最近几天遇到一些URL参数明文显示的问题,因为是明文显示,容易让人通过改变参数查看到他没有权限看到内容. 一开始我的做法是自定义了规则,然后原始的那种URL编码.可是URL编译后效果不理想,他无法编译 ...

  7. 编码解码:UrlDecode解码及UrlEncode编码的jQuery方法

    找了n多方法,终于找到,不容易. C#:Server.UrlEncode(ur) Jquery解码:decodeURIComponent(url); Jquery编码:encodeURICompone ...

  8. js Jquery字符UrlEncode 编码 C#(asp.net)解码 Server HttpUtility 区别 cookies存中文

    一.Js asp.net 交互Url编码解码 C#(asp.net)编码:HttpUtility.UrlEncode(url) Jquery解码:decodeURIComponent(url); Jq ...

  9. 如何用excel urldecode解码把url编码转为汉字?

    统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能.ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功能对优化用处很大,但大家都知道访问不太顺畅. ...

  10. Delphi UTF编码 UTF8Encode、UTF8Decode、URLEncode、URLDecode

    一.URL简介    URL是网页的地址,比如 http://www.cnblogs.com.Web 浏览器通过 URL 从 web 服务器请求页面.    由于URL字符串常常会包含非ASCII字符 ...

随机推荐

  1. KingbaseES V8R6 最老事务阻止vacuum freeze

    前言 最近生产环境发生几次由于长事务导致表.库年龄没法回收的情况.我们要规避这种情况的发生,不要等发生了再去强制中断会话连接. 当数据库中存在最老事务版本xmin,那么早于他的快照可以被标记为froz ...

  2. KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理

    KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理: 一.sys_backup.sh脚本按照如下顺序寻找初始化配置文件: [kingbase@postgres ~ ...

  3. MemfireCloud让静态托管页面动起来!

    静态托管 我们最常接触到的静态托管是github pages,它的常见工作模式是在github上创建一个仓库,使用hexo类的工具初始化仓库,编写markdown文件,生成静态页面,推送到github ...

  4. 【非插件实现】wordpress网站页脚添加,网站总访问数/今日访客数

    1 /** 2 * 统计全站总访问量/今日总访问量/当前是第几个访客 3 * @return [type] [description] 4 */ 5 function wb_site_count_us ...

  5. #扫描线,并查集,切比雪夫距离#洛谷 5193 [TJOI2012]炸弹

    题目 在平面上有 \(n\) 个炸弹 \([1 \ldots n]\) , 每个炸弹的爆炸范围是 \(|x-x_i|+|y-yi| \leq R\) 如果某个炸弹爆炸了,那么它将引燃它范围内的所有炸弹 ...

  6. reactive stream协议详解

    目录 背景 什么是reactive stream 深入了解java版本的reactive stream Publisher Subscriber Subscription Processor JDK中 ...

  7. 如何在OpenHarmony上使用SeetaFace2人脸识别库?

    简介 相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称"OpenHarmony")了,但你一定没在OpenHarmony上实现过人脸识别功能,跟着 ...

  8. Java 运算符详解与字符串处理技巧

    Java 运算符 算术运算符 算术运算符用于执行常见的数学运算. 运算符 名称 描述 示例 + 加法 将两个值相加 x + y - 减法 从一个值中减去另一个值 x - y * 乘法 将两个值相乘 x ...

  9. 大奖升级!HMS Core线上Codelabs挑战赛第3期:用3D建模构建元宇宙

    "元宇宙"概念风生水起,在AR.VR等技术构建的虚拟世界里,3D模型担当重要角色,无论是为玩家提供更丰富更真实游戏体验的3D游戏领域,还是各大电商平台正在启用并不断完善的3D虚拟购 ...

  10. caidao qsnctfwp

    进入网页发现如下内容 直接使用蚁剑连接 连接并进入后,在根目录下发现名为 flag 的文件,即可获取 flag -End-