问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

%E4%BC%A0%E5%A5%87%E7%A7%81%E6%9C%8D 这种类型的代码 是什么码,怎么能转换成正常的?求大神指点。

发布网友 发布时间:2022-11-05 02:32

我来回答

1个回答

热心网友 时间:2023-10-04 02:04

这个叫做url encoding,即URL编码,在网址上或者POST数据的时候用,目的是防止文字内容里面的=、?等特殊字符干扰query string的结构,避免解析错误


你给出的“%E4%BC%A0%E5%A5%87%E7%A7%81%E6%9C%8D”解码后就是汉字“传奇私服”


在百度上搜索“url encode”能找到这种编码的在线解析应用


Java语言使用apache commons codec库也可以对其进行编码或解码


C语言中可手动实现编码与解码:

#include <stdlib.h>  
#include <string.h>  
#include <ctype.h>  
#include <sys/types.h>  
  
#include "url.h"  
  
static unsigned char hexchars[] = "0123456789ABCDEF";  
  
static int php_htoi(char *s)  
{  
    int value;  
    int c;  
  
    c = ((unsigned char *)s)[0];  
    if (isupper(c))  
        c = tolower(c);  
    value = (c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10) * 16;  
  
    c = ((unsigned char *)s)[1];  
    if (isupper(c))  
        c = tolower(c);  
    value += c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10;  
  
    return (value);  
}  
  
  
char *php_url_encode(char const *s, int len, int *new_length)  
{  
    register unsigned char c;  
    unsigned char *to, *start;  
    unsigned char const *from, *end;  
      
    from = (unsigned char *)s;  
    end  = (unsigned char *)s + len;  
    start = to = (unsigned char *) calloc(1, 3*len+1);  
  
    while (from < end)   
    {  
        c = *from++;  
  
        if (c == ' ')   
        {  
            *to++ = '+';  
        }   
        else if ((c < '0' && c != '-' && c != '.') ||  
                 (c < 'A' && c > '9') ||  
                 (c > 'Z' && c < 'a' && c != '_') ||  
                 (c > 'z'))   
        {  
            to[0] = '%';  
            to[1] = hexchars[c >> 4];  
            to[2] = hexchars[c & 15];  
            to += 3;  
        }  
        else   
        {  
            *to++ = c;  
        }  
    }  
    *to = 0;  
    if (new_length)   
    {  
        *new_length = to - start;  
    }  
    return (char *) start;  
}  
  
  
int php_url_decode(char *str, int len)  
{  
    char *dest = str;  
    char *data = str;  
  
    while (len--)   
    {  
        if (*data == '+')   
        {  
            *dest = ' ';  
        }  
        else if (*data == '%' && len >= 2 && isxdigit((int) *(data + 1)) && isxdigit((int) *(data + 2)))   
        {  
            *dest = (char) php_htoi(data + 1);  
            data += 2;  
            len -= 2;  
        }   
        else   
        {  
            *dest = *data;  
        }  
        data++;  
        dest++;  
    }  
    *dest = '/0';
  // *dest =0; 用这个好些
    return dest - str;  
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
原神留影机如何使用 《原神》奇特的留影机任务攻略介绍_《原神》奇特的留影机任务攻略... 《原神》留影机使用方法介绍_《原神》留影机使用方法是什么 野菜鸡蛋饼制作步骤 如何做野菜鸡蛋饼会更美味? 有哪些懒人野菜鸡蛋饼推荐? 如何在家自制好吃的野菜鸡蛋饼? 曹杰人物主要观点 请求大家帮忙解答:一分数分母减2得4/5,分母加1得2/3,求原分数?我要具体... -1/2,2/3,-3/4,4/5……的通项公式是什么? 电脑蓝屏显示0X0000000A,COX00B501A0,0X00000002,0X00000001,0X80501D28 0x03129862的指令引用的0x0a0b48。该内存不能为read 如果丨a丨= - a ,那么a取值范围是( ) A;a&gt;0 B;a0 B;a 该怎么吃啊?晒干的玉米? 大家的ipadair充电要多长时间 眉山灭鼠公司有好的吗?我的酒店经常被投诉有老鼠 全脂奶粉和脱脂奶粉哪个好喝?适合什么人群? 粉底液的简单明了的使用方法 突然就没了是为什么? 没有了怎么找回 我以前的突然不见了怎么找回来了? 现在没了,钱包里有钱怎么样找回来? 丢失怎么找回? 不见了 工业空气能热水器是只能作为工业制热水吗? 怎样使朱顶红一年开三次花? 我在淘宝现在做的是虚拟充值 请问能不能保存现在店铺布置的信息 然后换成其他的模板 以后想换回来的时候 开店三步,完成了两步了,完善店铺信息不能保存,一保存就又回到完善店铺信息的界面了 我把店铺基本信息填完,后边也打钩,试过很多浏览器都保存不了,怎么办,求助!!! 急急急 铺货的时候怎么更好地记录门店信息? 一个质点作圆周运动,半径是R(m),速度和加速度的夹角是s。怎么证明v=v0*e^[b*(a-a0)],(b=ctgs) 电脑出现蓝屏 技术信息是 :stop:0x0000008e (0xc000000s .0xbd0dc350 . 0xb40d69a0 .0x00000000) 猫咪坐月子的注意事项 猫咪坐月子有什么注意事项 猫咪剖腹产后注意事项 猫咪该怎么做月子呢? 猫星人如何坐月子 沉香树怎么养 求教高手,670和950究竟差多少 求大师帮我解梦,三个人拿五桶装水的龙眼,求什么时候就职工作签证几月能签出 幼儿园大班语言游戏教案《动物乐园》 幼儿园好朋友语言游戏教案 幼儿园中班语言游戏活动教案《乌龟桥》 父母的征信会不会影响子女_法师兄 世界功夫前十名是? 怎样活跃自己的 怎么让变活跃号? 「开源」专业的免费视频管理系统,适合做短视频垂直细分内容平台 世界十大武术家都是谁 考健身教练证需要具备什么条件? 宁城哪家宾馆有玩的