76.CGI编码
- CGI编码
"%D6%DC%C8%F0%B8%A3";
- 转换到字符串中:
//CGI编码转到char类型的tmpstr中中
char* change(char *str)
{
//分配内存
char *tempstr = malloc(strlen(str) + );
//x是tempstr的下标,y是str的下标,依次赋值
int x=, y=;
//分别代表第一个编码,第二个编码
char assii_1, assii_2;
//如果传入的str不为空则一直循环
while (str[y])
{
//赋值并进行判断
if ((tempstr[x]=str[y]) =='%')
{
//'%'后第一个进行编码
if (str[y+]>='A')
{
assii_1 = str[y + ] - ;
}
else
{
assii_1 = str[y + ] - ;
} //‘%’后第二个进行编码
if (str[y + ] >= 'A')
{
assii_2= str[y + ] - ;
}
else
{
assii_2 = str[y + ] - ;
}
//把解析出来的赋给tempstr
tempstr[x] = assii_1 * + assii_2; //前进
y += ; }
//依次前进
x++;
y++;
}
//最后一位置零
tempstr[x] = '\0'; //返回结果
return tempstr;
}
完整代码:
#include<stdio.h> //CGI编码转到char类型的tmpstr中中
char* change(char *str)
{
//分配内存
char *tempstr = malloc(strlen(str) + );
//x是tempstr的下标,y是str的下标,依次赋值
int x=, y=;
//分别代表第一个编码,第二个编码
char assii_1, assii_2;
//如果传入的str不为空则一直循环
while (str[y])
{
//赋值并进行判断
if ((tempstr[x]=str[y]) =='%')
{
//'%'后第一个进行编码
if (str[y+]>='A')
{
assii_1 = str[y + ] - ;
}
else
{
assii_1 = str[y + ] - ;
} //‘%’后第二个进行编码
if (str[y + ] >= 'A')
{
assii_2= str[y + ] - ;
}
else
{
assii_2 = str[y + ] - ;
}
//把解析出来的赋给tempstr
tempstr[x] = assii_1 * + assii_2; //前进
y += ; }
//依次前进
x++;
y++;
}
//最后一位置零
tempstr[x] = '\0'; //返回结果
return tempstr;
} void main()
{
char str[] = "%D6%DC%C8%F0%B8%A3";
char *res = change(str);
printf("%d\n", strlen(res));
printf("%s", res); system("pause");
}
76.CGI编码的更多相关文章
- 79.cgi硬盘查询个人信息
运行截图: 把cgi编码转为char*类型 //把cgi编码转为char*类型 char* change(char *str) { //分配内存 ); //x是tempstr的下标,y是str的下标 ...
- Java 环境下使用 AES 加密的特殊问题处理
在 Java 环境下使用 AES 加密,在密钥长度和字节填充方面有一些比较特殊的处理. 1. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥的时候,会报告密钥长度错误 ...
- jmeter sampler maven项目排错记
eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...
- python 杂项
Python/JS/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 【共享单车】—— React后台管理系统开发手记:项目工程化开发
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- getFieldDecorator用法(三)——Table增删改
后台管理系统常用到表单的增删改,这里也做了个封装 例如:user/index.js import React from 'react' import { Card, Button, Table, Fo ...
- 彻底解决python cgi 编程出现的编码问题
Answering this for late-comers because I don't think that the posted answers get to the root of the ...
- 读取一个文件,将其Base64编码,每76个字符加一个换行(转)
echo chunk_split(base64_encode(file_get_contents('base64.txt'))); 例子 1 本例分隔每个字符,并添加 ".": & ...
- Java面试题及答案(基础122道,编码19道)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
随机推荐
- intellij idea中快速抽取方法
Intellij Idea使用教程汇总篇 问题:有时候一个方法里面嵌套了很多逻辑,想拆分为多个方法方便调用:或者一个方法复用性很高,这时,这个方法嵌套在局部方法里面肯定是不方便的,如何快速抽取出这个方 ...
- 洛谷 P1542 包裹快递
P1542 包裹快递 题目描述 小K成功地破解了密文.但是乘车到X国的时候,发现钱包被偷了,于是无奈之下只好作快递员来攒足路费去Orz教主…… 一个快递公司要将n个包裹分别送到n个地方,并分配给邮递员 ...
- spring的PropertyPlaceholderConfigurer不生效的问题
经常出现这种问题,每次都debug知道原因,但每次都会忘记,所以记录一下. 原因:maven项目中使用了非maven管理的jar包(通过systemPath引用),这些jar包没有放在${projec ...
- localStorage 以及UserData[IE6 IE7]使用
说在前头: UserData:属于IE6 IE7的老东西.麻烦且体验差,暂且不表 localStorage 属于HTML5的东西,兼容IE8以及其它W3C标准的主流浏览器.所以尽可能的具体解说 注意: ...
- 使用ThoughtWorks.QRCode生成二维码
新建Windows应用程序,加入引用ThoughtWorks.QRCode.dll,编写代码生成二维码. using System; using System.Drawing; using Syste ...
- hdu1879 继续畅通project(最小生成树)
继续畅通project Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- vue28-2.0-过滤器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue14 自定义过滤器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- zzulioj--1801--xue姐的小动物(水题)
1801: xue姐的小动物 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 594 Solved: 168 SubmitStatusWeb Boar ...
- springMVC的一些配置解析
<mvc:annotation-driven /> <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射--> 是一种简写形式,完全可以手 ...