zoukankan      html  css  js  c++  java
  • 编码解码UTF8,gb2312等百分号编码进行解码示例

    首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责

        uft-8 及 gb2312对 数据编码时,保留 字符和数字的anscii 编码方法,但对汉字及特殊字符进程 百分号编码。其中utf-8中一个 汉字 占3个字节,gb2312 中占2个字节。

        例如 "三"    停止utf-8 百分号编码,生成%E4%B8%89

        在解码时,需加%后的2位16进制数转换为整数,放入响应数组位置即可。

        

        代码示例:

        每日一道理
    风,渐渐吹起,吹乱了我的发丝,也让我的长裙有些飘动。绿叶仿佛在风中起舞,离开了树,投向了大地,却不知这样会枯萎,我弯下腰,轻轻拾起一片树叶,那非常有序的茎脉,是一种美的点缀。我有些哀叹:绿叶啊,绿叶,你这般美丽地从树上轻轻飘下,随风起舞,却不知已被人称之为落叶!
    int unencode(char *src, char *dest)
    {
        int code;
    
        for(; *src != 0; src++, dest++)
        {
            if(*src == '%')
            {
                if(sscanf(src+1, "%2x", &code) != 1)
                    return 1;
                *dest = code;
                src += 2;
            }
        }
        return 0;
    }
    
    char *src = "%E4%B8%89%E5%9B%BD%E6%BC%94%E4%B9%89";
    char *dest;
    char *res = "三国演义";
    
    int main()
    {
        dest = (char *)malloc(strlen(src)*sizeof(char));
        unencode(src, dest);
    
        printf("dest:%s\n", dest);
        printf("res len:%d, %s\n", strlen(res), res);
        if(0 == strcmp(dest, res))
            printf("equal\n");
        else
            printf("not equal\n");
    
        return 0;
    }

        运行结果:

        dest:三国演义
    res len:12, 三国演义
    equal

    文章结束给大家分享下程序员的一些笑话语录: 自行车
    一个程序员骑着一个很漂亮的自行车到了公司,另一个程序员看到了他,问 到,“你是从哪搞到的这么漂亮的车的?”
    骑车的那个程序员说, “我刚从那边过来, 有一个漂亮的姑娘骑着这个车过来, 并停在我跟前,把衣服全脱了,然后对我说,‘你想要什么都可以’”。
    另一个程序员马上说到, “你绝对做了一个正确的选择, 因为那姑娘的衣服你 并不一定穿得了”。

    --------------------------------- 原创文章 By
    编码和解码
    ---------------------------------

  • 相关阅读:
    Windows 之 CMD命令
    关于生sql中的空值
    电商物流仓储WMS业务流程
    VS 在代码中括号总是跟着类型后面
    DataTable的Select()方法
    sqlserver 系统表芝士
    CodeMix入门基础知识
    DevExpress v18.1新版亮点——CodeRush for VS篇(二)
    DevExpress v18.1新版亮点——CodeRush for VS篇(一)
    DevExpress v18.1新版亮点——Data Access篇
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3111337.html
Copyright © 2011-2022 走看看