1 //CGI编码转到char类型的tmpstr中中
2 char* change(char *str)
3 {
4 //分配内存
5 char *tempstr = malloc(strlen(str) + 1);
6 //x是tempstr的下标,y是str的下标,依次赋值
7 int x=0, y=0;
8 //分别代表第一个编码,第二个编码
9 char assii_1, assii_2;
10 //如果传入的str不为空则一直循环
11 while (str[y])
12 {
13 //赋值并进行判断
14 if ((tempstr[x]=str[y]) =='%')
15 {
16 //'%'后第一个进行编码
17 if (str[y+1]>='A')
18 {
19 assii_1 = str[y + 1] - 55;
20 }
21 else
22 {
23 assii_1 = str[y + 1] - 48;
24 }
25
26 //‘%’后第二个进行编码
27 if (str[y + 2] >= 'A')
28 {
29 assii_2= str[y + 2] - 55;
30 }
31 else
32 {
33 assii_2 = str[y + 2] - 48;
34 }
35 //把解析出来的赋给tempstr
36 tempstr[x] = assii_1 * 16 + assii_2;
37
38 //前进
39 y += 2;
40
41 }
42 //依次前进
43 x++;
44 y++;
45 }
46 //最后一位置零
47 tempstr[x] = '