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. 一道百度算法面试题讲解
  2. 什么是CNN?机器学习入门贴,Facebook员工打造,47k访问量
  3. A/B测试:概念 ≠ 执行
  4. Cmake中的find_package功能
  5. 2018年最实用的6个机器学习项目
  6. python 如何将字符串列表合并后转换成字符串? ''.join(List(str))函数
  7. Leecode 268. 丢失的数字——Leecode每日一题系列
  8. RecycleView 与 Elevation
  9. Android插件化开发基础之App如何动态加载类
  10. 微服务精华问答 | 微服务如何测试?
  11. 理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
  12. 如何用java输出方格_第三章 Java类基础知识作业之(输出5*5数字方格,打印星塔)...
  13. Linux-rhel6.4 编译安装PHP,Nginx与php连接
  14. 输出100以内的所有素数
  15. 【PTA】 统计素数并求和
  16. 纪念我的第一次面试——华为研发类面试
  17. 提供小图标(Icon)的网站(不定时更新)
  18. JAVA根据开始时间和结束时间获取天数
  19. uview框架u-form表单校验,rules校验对象中对象的值(解决 当form属性嵌套对象时未取到值的问题)
  20. html页面弹出 聊天框,网页弹出在线交流聊天窗口的功能如何实现 - 快商通

热门文章

  1. 共享计算机添加不上去,电脑连不上共享打印怎么解决
  2. CDNOW用户购买行为分析 - 2020
  3. python词云图词频统计
  4. “5.12”四川汶川大地震有感
  5. 3D角色建模主要工作有什么选择?
  6. 【笔记】Spring MVC拦截入参、出参实现入参解密,出参加密统一管理
  7. 数据库JDBC包装实现
  8. 彩票软件6)观察者模式
  9. DC靶机系列:DC-6
  10. 1.用于记录Lightroom的快捷键