|
楼主 |
发表于 2010-2-2 14:37:40
|
显示全部楼层
山东省威海市
URLEncode:一般为地址栏中的中文字加密时使用,转换后,原明文的汉字将变成加密字符串,但可被浏览器识别。
URLDecode:转换为UTF-8字符串。GOOGLE 搜索引擎就是使用这种编码来搜索中文的。
HTMLEncode:几乎所有的论坛中都有用到的一种编码转换,转换后原有的HTML代码不被执行。以免造成安全隐患。
TrimHTML:转换后,将移除所有的HTML标识,只保留文字。
UTF-8字符还原:可将URLDecode转换后的字符串再次还原为文字。(感谢NB联盟---小竹提供转换函数)
就是红色的那个
VC的
#define IsHexNum(c) ((c >= ''0'' && c <= ''9'') || (c >= ''A'' && c <= ''F'') || (c >= ''a'' && c <= ''f''))
CString Utf8ToStringT(LPSTR str)
{
_ASSERT(str);
USES_CONVERSION ;
WCHAR*buf ;
int length=MultiByteToWideChar(CP_UTF8,0,str,-1,NULL,0);
buf=new WCHAR[length+1];
ZeroMemory(buf,(length+1)*sizeof(WCHAR));
MultiByteToWideChar(CP_UTF8,0,str,-1,buf,length);
return(CString(W2T(buf)));
}
CString UrlDecode(LPCTSTR url)
{
_ASSERT(url);
USES_CONVERSION ;
LPSTR _url=T2A(const_cast<LPTSTR>(url));
int i=0 ;
int length=(int)strlen(_url);
CHAR*buf=new CHAR[length];
ZeroMemory(buf,length);
LPSTR p=buf ;
while(i<length)
{
if(i<=length-3&&_url==''%''&&IsHexNum(_url[i+1])&&IsHexNum(_url[i+2]))
{
sscanf(_url+i+1,"%x",p++);
i+=3 ;
}
else
{
*(p++)=_url[i++];
}
}
return Utf8ToStringT(buf);
} |
|