编码解码UTF-8,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
编码和解码
---------------------------------