⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codes_convert.c

📁 用C语言与网页通迅的时候,难免会有进行编码的,此函数可以对GB2312转换成Unicode,然后再进行UTF8的页面编码,生成网页的%EB等格式
💻 C
字号:
#include "codes_convert.h"extern int errno;char urls[] = "0123456789ABCDEF";int geturlspos(char ch){	int i;	for(i=0; i<strlen(urls); i++)	{		if (urls[i] == ch)			return i;	}	return 0;}/* normal to url *//* ascii no deal, ' ' to '+', others to %XY, X is high, Y is lower  */int urlencode(char *ib, int il, char *ob){	int i=0;	int j=0;		for(i=0; i<il; i++, j++)	{		if (!isascii(ib[i]))		{			ob[j++] = '%';			ob[j++] = urls[(ib[i] >> 4) & 0x0f]; 			ob[j] = urls[ib[i] & 0x0f];		}		else		{			ob[j] = ib[i];		}	}	ob[j] = '\0';	return j;}/* url to normal *//* ascii no deal, '+' to ' ', others to normal, %XY->X is high, Y is lower */int urldecode(char *ib, int il, char *ob){	int i=0;	int j=0;	for(i=0; i<il; i++)	{		if (ib[i] == '%')		{			ob[j] =	((geturlspos(ib[i+1]) << 4) & 0xf0) | (geturlspos(ib[i+2]) & 0x0f); 			i += 2;		}		else		{			ob[j] = ib[i];		}		j++;	}	return j;}/* code convert *//* fc: from chatset, tc: to chatset *//* ib: inbuf, il: inlen, ob: outbuf, ol: outlen */int code_convert(char *fc, char *tc, char *ib, int il, char *ob, int ol){	iconv_t cd;	/*		iconv_t iconv_open(const char *tocode, const char *fromcode);	*/	cd = iconv_open(tc, fc);	if (cd == (iconv_t)-1)	{		printf("sys alm: call function iconv_open error, errno[%d]\n", errno);		return -1;	}	/*	size_t iconv(iconv_t cd,                     char **inbuf, size_t *inbytesleft,                     char **outbuf, size_t *outbytesleft);	*/	if (iconv(cd, (char**)&ib, (size_t*)&il, (char**)&ob,(size_t*)&ol) == (size_t)-1)	{		printf("sys alm: call function iconv error, errno[%d]\n", errno);		return -1;	}		/*		int iconv_close(iconv_t cd);	*/	iconv_close(cd);	return ol;}/* gb2312 to utf8 */int gb2312_to_utf8(char *ib, int il, char *ob, int ol){	return code_convert("GB2312", "UTF-8", ib, il, ob, ol);}/* utf8 to gb2312 */int utf8_to_gb2312(char *ib, int il, char *ob, int ol){	return code_convert("UTF-8", "GB2312", ib, il, ob, ol);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -