url-MFC URL编码 含有中文编码问题求解

问题描述

MFC URL编码 含有中文编码问题求解

程序里需要通过URL传递参数,里面如果有中文的话就变成?????,程序设置为多字节。
求一个可以用的 URL编码例子

解决方案

自己解决了 转化例子

 void UnicodeToUTF_8(char* pOut, WCHAR* pText)
{
    // 注意 WCHAR高低字的顺序,低字节在前,高字节在后
    char* pchar = (char *)pText;
    pOut[0] = (0xE0 | ((pchar[1] & 0xF0) >> 4));
    pOut[1] = (0x80 | ((pchar[1] & 0x0F) << 2)) + ((pchar[0] & 0xC0) >> 6);
    pOut[2] = (0x80 | (pchar[0] & 0x3F));
    return;
}

void GB2312ToUTF_8(CString& pOut, char *pText, int pLen)
{
    char buf[4];
    memset(buf, 0, 4);
    pOut.Empty();
    int i = 0;
    while (i < pLen)
    {
        //如果是英文直接复制就可以
        if (pText[i] >= 0)
        {
            char asciistr[2] = { 0 };
            asciistr[0] = (pText[i++]);
            pOut.Append(asciistr);
        }
        else
        {
            WCHAR pbuffer;
            Gb2312ToUnicode(&pbuffer, pText + i);
            UnicodeToUTF_8(buf, &pbuffer);
            pOut.Append(buf);
            i += 2;
        }
    }
    return;
}
void Gb2312ToUnicode(WCHAR* pOut, char *gbBuffer)
{
    ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, gbBuffer, 2, pOut, 1);
    return;
}
CString UrlUTF8(char * str)
{
    CString tt;
    CString dd;
    GB2312ToUTF_8(tt, str, (int)strlen(str));
    size_t len = tt.GetLength();
    for (size_t i = 0; i<len; i++)
    {
        if (isalnum((BYTE)tt.GetAt(i)))
        {
            char tempbuff[2] = { 0 };
            sprintf(tempbuff, "%c", (BYTE)tt.GetAt(i));
            dd.Append(tempbuff);
        }
        else if (isspace((BYTE)tt.GetAt(i)))
        {
            dd.Append("+");
        }
        else
        {
            char tempbuff[4];
            sprintf(tempbuff, "%%%X%X", ((BYTE)tt.GetAt(i)) >> 4, ((BYTE)tt.GetAt(i)) % 16);
            dd.Append(tempbuff);
        }
    }
    return dd;
}

解决方案二:

将参数中的中文内容base64编码,然后再传输,在服务端再进行解码,这样就不会乱码了

时间: 2024-12-08 08:58:55

url-MFC URL编码 含有中文编码问题求解的相关文章

编码-htmlparser抓取url的时候,含有中文字符抛出异常

问题描述 htmlparser抓取url的时候,含有中文字符抛出异常 我明确的看了网站的编码是gb2312,并且有设置 parser.setEncoding("gb2312"); 但是最后抛出这个异常 Exception in thread "main" java.lang.IllegalArgumentException 原因是我的url里面含有中文,不知道该怎么结局诶 解决方案 这个可能是htmlparser的弊端吧!还有好几种比较不错的解析html,比如Jso

Objective-C 对 URL 进展 URLEncode 编码

Objective-C 对 URL 进行 URLEncode 编码在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的 +&sd f&p2=中文,其中的中文.特殊符号&%和空格都必须进行转译才能正确访问. 在 Java..net 和 JS 中都有相应的 encodeURL 方法可用,在 Objective-C 语言中,你可以试下 - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NS

url中图片名含有%23转义字符,无法访问,急急急急急急急。。解决马上送分

问题描述 各位高手帮忙解决.url中图片名含有%23转义字符,无法访问,提示404-找不到文件或目录.比如:http://www.abcd.com/image/M34286G2GP%23WC.jpg可是伪静态文件就可以访问比如:http://www.abcd.com/image/M34286G2GP%23WC.htmWeb.Config中也增加了<security><requestFilteringallowDoubleEscaping="true"/><

对URL地址进行编码 优化2_应用技巧

ASP(Active Server Page)是 Microsoft 公司推出的基于 PWS (Personal Web Server)& IIS (InternetInformation Server)平台的.基于 ISAPI (InternetServiceAPI) 原理的动态网页开发技术,目前日趋成熟完善.在这里仅就代码优化进行一些简单讨论.  1.声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能

对URL地址进行编码 优化2

ASP(Active Server Page)是 Microsoft 公司推出的基于 PWS (Personal Web Server)& IIS (InternetInformation Server)平台的.基于 ISAPI (InternetServiceAPI) 原理的动态网页开发技术,目前日趋成熟完善.在这里仅就代码优化进行一些简单讨论.  1.声明VBScript变量 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数.方法,这样给扩展ASP的现有功能

使用jquery获取url及url参数的简单实例_jquery

使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通过javascript是如何来获取url中的某个参数: //获取url中的参数 function getUrlP

一个从网页tag里面分析url和url标题的类

一.不得不说的废话 我知道用 MSHTML 的 IHTMLDocument2 的 get_links 获取 IHTMLElementCollection 接口,通过 IHTMLElementCollection 来获取 IHTMLAnchorElement,再通过 IHTMLAnchorElement 接口的get_href 我们就可以得到网页的所有链接了!但这是用 MSHTML 的办法,就我本人而言,总喜欢自己来搞,不喜欢用看不到内部的东西(虽然 microsoft 写得比我的好).所以,我就

如何seo url与url标准写法

如何seo教程 url与url标准写法 相信给大部分人的第一反应就是url要静态化,至少也得伪静态.确实是这个操作能引起搜索引擎的喜欢,那么试问,谁是第一个提出的呢,是百度自己吗?要给大家一年反问也就是为了说明,url静态化的真正原因. 其实对于gg而言,网站的url是否要静态化处理没有太大的差别.这话怎么说,对于gg搜索引擎来说,他还是能看懂我们网站带?的url动态路径.那么也就是说它能在一定的程度上识别网站url的参数,相反对于做过静态化处理的,往往会造成url意义不明确无非就是一个代号.而

url asp 跳转-请教下 无损外链跳转url.asp?url=http://xxx

问题描述 请教下 无损外链跳转url.asp?url=http://xxx 以下代码如何实现过滤以 http ftp www https 开头的网址 修改前链接格式为 域名/url.asp?url=http://www.baidu.com 修改后链接格式为 域名/url.asp?url=baidu.com 请高手指点 谢谢. <% dim url dim baiyea_url baiyea_url=request("url") Response.Redirect baiyea_u