免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: gejiajie_01
打印 上一主题 下一主题

紧急求助关于html decode [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-02-24 10:53 |只看该作者
char* htmldecode(char *p, int *str_len, char *buf)
{
        register i=0, len=0;
        char *q;
        char tmp[8192];
        unsigned int c;
        bzero(buf, sizeof(buf));
        bzero(tmp, sizeof(tmp));
        strncpy(tmp, p, *str_len);
        (*str_len)=0;
        p=tmp;
        while(*(p+i))
        {
                if ((*p=*(p+i)) == '&' && *(p+i+1) == '#' )
                {
                        q=p+i;
                        while(*q != ';') q++;
                        len=q-p-i;
                        c=(atoi(p+i+2));
                        memcpy(buf, &c, 2);
                        buf+=2;
                        p++;
                        (*str_len)+=2;
                        i=q-p;
                }else{
                        c=(*p);
                        memcpy(buf, &c, 2);
                        buf+=2;
                        (*str_len)+=2;
                }
                p++;
        }
        *p='\0';
}

int main(){
        char a[]="aa我@.doc@sadf@";
        int len;
        int i;
        unsigned char *str = (unsigned char *) malloc (strlen(a)*2);
        len=strlen(a);
        htmldecode(a, &len, str);
        printf("%s\n", a);
        for(i=0; i<len; i++)
        printf("%c", str[i]);
        free(str);
        return 0;
}

论坛徽章:
0
12 [报告]
发表于 2010-02-24 10:54 |只看该作者
终于弄出来了,只不过字符是utf-16的,要转成UTF-8比较好,我就不转了,自己给自己结贴 !

论坛徽章:
0
13 [报告]
发表于 2010-02-24 10:56 |只看该作者
对,UTF-16转UTF-8我也发过帖子,想看的可以search下

论坛徽章:
0
14 [报告]
发表于 2010-03-11 17:05 |只看该作者
输出中文字符肯定要字符集啦?
你装没?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP