• 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编码的更多相关文章

  1. 79.cgi硬盘查询个人信息

    运行截图: 把cgi编码转为char*类型 //把cgi编码转为char*类型 char* change(char *str) { //分配内存 ); //x是tempstr的下标,y是str的下标 ...

  2. Java 环境下使用 AES 加密的特殊问题处理

    在 Java 环境下使用 AES 加密,在密钥长度和字节填充方面有一些比较特殊的处理. 1. 密钥长度问题 默认 Java 中仅支持 128 位密钥,当使用 256 位密钥的时候,会报告密钥长度错误 ...

  3. jmeter sampler maven项目排错记

    eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...

  4. python 杂项

        Python/JS/    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  5. 【共享单车】—— React后台管理系统开发手记:项目工程化开发

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  6. getFieldDecorator用法(三)——Table增删改

    后台管理系统常用到表单的增删改,这里也做了个封装 例如:user/index.js import React from 'react' import { Card, Button, Table, Fo ...

  7. 彻底解决python cgi 编程出现的编码问题

    Answering this for late-comers because I don't think that the posted answers get to the root of the ...

  8. 读取一个文件,将其Base64编码,每76个字符加一个换行(转)

    echo chunk_split(base64_encode(file_get_contents('base64.txt'))); 例子 1 本例分隔每个字符,并添加 ".": & ...

  9. Java面试题及答案(基础122道,编码19道)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

随机推荐

  1. POI0109 POD (最短路)

    POI0109 POD (最短路) 版权声明:本篇随笔版权归作者YJSheep(www.cnblogs.com/yangyaojia)所有,转载请保留原地址! 现在让我们来对一个交通运输图进行研究,这 ...

  2. ArcGIS api for javascript——地图配置-定制导航箭头

    描述 本例展示了如何为平移地图包括自定义的按钮.地图被放置在一个宽3列和高3行的HTML表格的固定宽度中心单元.表格里剩余的单元放置标签为8个主要方向的缩写的按钮.每个按钮调用地图上不同的平移函数.例 ...

  3. KM HDU 3718

    #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...

  4. HDFS中的命令行

    HDFS中的命令行 本文介绍了HDFS以命令行执行的时候.几个经常使用的命令行的作用和怎样使用~ 1. fs fs是启动命令行动作,该命令用于提供一系列子命令. 使用形式为hadoop fs –cmd ...

  5. Vue进阶之表单控件绑定

    1.单行input <html> <head> <meta charset="UTF-8"> <meta name="viewp ...

  6. Redis封装之Hash

    RedisHashService: /// <summary> /// Hash:类似dictionary,通过索引快速定位到指定元素的,耗时均等,跟string的区别在于不用反序列化,直 ...

  7. kafka查询topic属性含义

    第一行,列出了topic的名称,分区数(PartitionCount),副本数(ReplicationFactor)以及其他的配置(Config.s) Leader:1 表示为做为读写的broker的 ...

  8. Aizu - 2555 Everlasting Zero 模拟

    Aizu - 2555 Everlasting Zero 题意:学习技能,每个技能有不同的要求,问能否学习全部特殊技能 思路:枚举每两个技能,得到他们的先后学习关系,如果两个都不能先学的话就是No了, ...

  9. 由安装两块网卡的linux系统中引起网络不通想到的

    由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通服务器,我网卡的驱动都安装了,ping 自己的两块网 ...

  10. c#记录日志的方法

    /// <summary> /// 生成日志 /// </summary> /// <param name="text"></param& ...