随笔-16  评论-116  文章-0  trackbacks-0
转载请注明出处http://www.cppblog.com/greatws/archive/2008/09/23/62621.html

网页常常是UTF8的,而我们用VC用Wininet相关API  POST数据时,有中文的话,经常是%XX%XX%XX这种形式,这样的话,就能方便做出在线翻译之类的小软件,HOHO

所以写了个UTF8 URL编码转换函数

BOOL ConvertStringToURLCoding(CString &strDest, const char* strUTF8, int iLength)
{
    strDest.Empty();
    CString strTemp;
    
int i = 0;
    
while(i < iLength)
    
{
        
if ((unsigned)strUTF8[i] <= (unsigned char)0x7f)
        
{ //字母和数字不转换

            
if ((strUTF8[i] >= '0' && strUTF8[i] <= '9'|| 
                (strUTF8[i] 
>= 'A' && strUTF8[i] <= 'Z'||
                (strUTF8[i] 
>= 'a' && strUTF8[i] <= 'z'))
            
{
                strDest 
+= (char)strUTF8[i];
            }


            
else if (strUTF8[i] == ' ')    //空格转换成+号
            
{
                strDest 
+= '+';
            }


            
else
            
{
                strTemp.Format(
"%%%02X", (unsigned char)strUTF8[i]);    //其他标点符号
                strDest 
+= strTemp;
            }

            i
++;
        }

        
else
        
{        //汉字或者其他的uft8文字,每3个字节一转
            strTemp.Format(
"%%%02X%%%02X%%%02X", (unsigned char)strUTF8[i], 
                (unsigned 
char)strUTF8[i + 1], (unsigned char)strUTF8[i + 2]);
            strDest 
+= strTemp;
            i 
+= 3;
        }

    }

    
if (i == 0)
    
{
        
return FALSE;
    }

    
return TRUE;
}

by greatws
posted on 2008-09-23 19:51 greatws 阅读(4770) 评论(1)  编辑 收藏 引用

评论:
# re: UTF8 URL的字符串转换 2014-09-23 14:21 | 的撒
我看到  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理