1、URLEncoder是什么

  URLEncoderHTML 格式编码的实用工具类。该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法。

对 string字符串 编码时,使用以下规则:

  • 字母数字字符 “a” 到 “z”、“A” 到 “Z” 和 “0” 到 “9” 保持不变。
  • 特殊字符 “.”、“-”、“*” 和 "_"保持不变。
  • 空格字符 " " 转换为一个加号 “+”。
  • 所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串"%xy"表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。

2、为什么需要URLEncoder

  在URI的最初设计时,希望能通过书面转录,因此URI的构成字符必须是可写的ASCII字符。在这些可书写的字符里,由于一些字符在不同操作系统的编码有不同的解析,被包含在“不安全字符”之中,要格外注意。

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

  • ASCII 的控制字符

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

  • 一些非ASCII字符

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

  • 一些保留字符

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

  • 一些不安全的字符了。

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

url转义其实也只是为了符合url的规范。因此,URLEncoder只是为了url中一些非ascii字符,可以正确无误的被传输。

3、转码工具代码

先看效果:

代码:

#include "stdafx.h"
#include <windows.h>
#include <wchar.h>
#include "url_code.h"int main(int argc, char *argv[])
{Encoder encoder;std::string strResult;std::string sUTF8 = "UTF8格式URL编码测试数据";printf("UTF8格式原始Url:%s\r\n", sUTF8.c_str());strResult = encoder.UTF8UrlEncode(sUTF8);printf("UTF8格式Url编码:%s\r\n", strResult.c_str());std::string sUTF8Ex = "UTF8%E6%A0%BC%E5%BC%8FURL%E7%BC%96%E7%A0%81%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE";printf("UTF8格式加密Url:%s\r\n", sUTF8Ex.c_str());strResult = encoder.UTF8UrlDecode(sUTF8Ex);printf("UTF8格式Url解码:%s\r\n", strResult.c_str());printf("\r\n  \r\n");std::string sANSIC = "ANSIC格式URL编码测试数据";printf("ANSIC格式原始Url:%s\r\n", sANSIC.c_str());strResult = encoder.UrlEncode(sANSIC);printf("ANSIC格式Url编码:%s\r\n", strResult.c_str());std::string sANSICEx = "ANSIC%B8%F1%CA%BDURL%B1%E0%C2%EB%B2%E2%CA%D4%CA%FD%BE%DD";printf("ANSIC格式加密Url:%s\r\n", sANSICEx.c_str());strResult = encoder.UrlDecode(sANSICEx);printf("ANSIC格式Url解码:%s\r\n", strResult.c_str());return 0;
}

4、源码下载地址

下载地址

C++ 版本UrlEncoder编码解码工具:支持ANSIC和UTF8格式相关推荐

  1. URL编码解码工具类

    /****************************************************************************** * CREATETIME : 2016年 ...

  2. 条形码和二维码编码解码工具类源码

    有一个好的工具,会让你的开发事半功倍.再将讲这个工具类之前,我先给小白补充一点条形码和二维码(以下基础知识选自,我本科阶段的一本教材:<物联网导论>(刘云浩 编著).有对物联网感兴趣的,可 ...

  3. WebP 文件及其编码解码工具(WebPconv)

    1. webp 文件 与JPEG相同,WebP 是一种有损压缩利用预测编码技术. WebP 是 Google 新推出的影像技术,它可让网页图档有效进行压缩,同时在质量相同的情况下,WebP 格式图像的 ...

  4. JavaScript Eval Encode/Decode JavaScript Eval 在线加密/解密, 编码/解码工具

    eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fr ...

  5. Linux编码解码指令-base64

    文章目录 一.编码 二.解码 三.常见编码方式整理 一.编码 从标准输入读取内容 base64 输入要编码的内容,回车换行,Ctrl+D结束输入 借助echo echo 字符串 |base64 借助& ...

  6. 移动端图片_编码解码调研

    图片通常是移动端流量耗费最多的部分,并且占据着重要的视觉空间.合理的图片格式选用和优化可以为你节省带宽.提升视觉效果.在这篇文章里我会分析一下目前主流和新兴的几种图片格式的特点.性能分析.参数调优,以 ...

  7. Base64及Base64Url的编码解码

    在线工具请参考:在线base64编码解码工具 在线base64url编码解码工具

  8. java的Url和Html编码解码

    今天使用UEditor的时候发现传到Controller里面的富文本内容是编码过的,很想当然的就以为是经过HtmlEncode过的,所以采用了Apache Common Lang包做编码解码工具,调用 ...

  9. 编码/解码和进制转化工具hURL

    编码/解码和进制转化工具hURL 在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Linu ...

最新文章

  1. python reduce函数_Python reduce函数作用及实例解析
  2. JavaScript学习总结(十三)——极简主义法编写JavaScript类
  3. Mysql数据库和表的增删改查以及数据备份恢复
  4. SAP IBASE Category 01和03的区别
  5. 想起温习一下JS中的this apply call arguments
  6. new 动手学深度学习V2环境安装
  7. [渝粤教育] 西南科技大学 政治经济学 在线考试复习资料
  8. 算法笔记_面试题_15.回溯算法模板及示例
  9. 阿里云keepalived的虚拟ip怎么让外网访问_Keepalived双机热备
  10. 【SSTFlashFlex51单片机烧录软件的使用方法】
  11. 数据库——添加外键约束
  12. Win8彻底关闭UAC
  13. 人生不过一场旅行,你路过我,我路过你
  14. ECCV2018论文RBNet:Receptive Field Block Net for Accurate and FastObject Detection
  15. 最低销售量计算机公式,最低、最高、安全库存量的计算公式
  16. 安全的远程访问是保护知识产权的关键
  17. Photoshop 无法安装Tych Panel,提示:could not create folder Run Photoshop as administrator or create the ...
  18. Android 手机获取加速度传感器加速度数据并自定义采样频率
  19. 还在用网易云音乐客户端?out了~
  20. CI/CD :Pipeline

热门文章

  1. 智能硬件的时代划分:如何向外行装逼
  2. 2023年乘坐火车高铁成人儿童旅客列车临时身份证明手机在线如何办理乘车临时身份证明?
  3. 盘点2006 ---影视剧的十个关键词
  4. MATLAB自适应中值滤波
  5. 彩票软件3)wpf界面布局
  6. Python反反爬虫 - Frida破解某安卓社区token反爬虫
  7. DC-3靶机 渗透测试
  8. ChatGPT启示录: 智能、推理的本质是什么?神经网络既是推理机,也是知识规则库?
  9. html简单边框制作--特效文字制作及代码,一、 教你制作漂亮的HTML代码特效贴
  10. Python之在字符串中引用变量的4种方法