ActiveX中通过CHTTPFile的sendRequest向asp发送Form。日文数据提交过去是乱码。 ActiveX中通过CHTTPFile的sendRequest向asp发送Form。日文数据提交过去是乱码。请问如何编码才能解决这个问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要先调用URLEncode吧,有很多种的Encode方法,这里提供一种:(好像在VC中没有直接的调用只能自己写)在.h中: inline BYTE toHex(const BYTE &x); CString MyURLEncode(CString strIn);在.cpp中:inline BYTE CMYTEST::toHex(const BYTE &x){ return x > 9 ? x + 55: x + 48;}CString CMYTEST::MyURLEncode(CString strIn){ CString sOut; const int nLen = strIn.GetLength() + 1; register LPBYTE pOutTmp = NULL; LPBYTE pOutBuf = NULL; register LPBYTE pInTmp = NULL; LPBYTE pInBuf =(LPBYTE)strIn.GetBuffer(nLen); BYTE b = 0; //alloc out buffer pOutBuf = (LPBYTE)sOut.GetBuffer(nLen * 3 - 2);//new BYTE [nLen * 3]; if(pOutBuf) { pInTmp = pInBuf; pOutTmp = pOutBuf; // do encoding while (*pInTmp) { if(isalnum(*pInTmp)) *pOutTmp++ = *pInTmp; else if(isspace(*pInTmp)) *pOutTmp++ = '+'; else { *pOutTmp++ = '%'; *pOutTmp++ = toHex(*pInTmp>>4); *pOutTmp++ = toHex(*pInTmp%16); } pInTmp++; } *pOutTmp = '\0'; //sOut=pOutBuf; //delete [] pOutBuf; sOut.ReleaseBuffer(); } strIn.ReleaseBuffer(); return sOut;}就可以调用MyURLEncode来Encode你的那些日文了,再Post过去。 exploer1怎么去掉滚动条和边框 怎样触发飞信的发送按钮 IM软件开发交流群:25823586,讨论NAT穿透,IOCP服务器假设,欢迎各位近来讨论 源码+50分,请帮忙 关于OLE DB编程? 为何窗口拆分不能使用CScrollView类 我要在一个函数中改变一个树型控件中一个节点前面的图象,应该怎么做呢? 对话框设定初始位置问题? Explorer.exe和pdm.dll总是冲突? 请问在TreeCtrl中如何保存用EditLabel编辑的结果啊!各位千万不要见死不救啊!!! 如何判断OLE服务器是单独运行,还是嵌入到某一程序中运行? 请进来谈一谈各位理想的生活方式是什么样子的
inline BYTE toHex(const BYTE &x);
CString MyURLEncode(CString strIn);在.cpp中:
inline BYTE CMYTEST::toHex(const BYTE &x)
{
return x > 9 ? x + 55: x + 48;
}CString CMYTEST::MyURLEncode(CString strIn)
{
CString sOut;
const int nLen = strIn.GetLength() + 1; register LPBYTE pOutTmp = NULL;
LPBYTE pOutBuf = NULL;
register LPBYTE pInTmp = NULL;
LPBYTE pInBuf =(LPBYTE)strIn.GetBuffer(nLen);
BYTE b = 0;
//alloc out buffer
pOutBuf = (LPBYTE)sOut.GetBuffer(nLen * 3 - 2);//new BYTE [nLen * 3]; if(pOutBuf)
{
pInTmp = pInBuf;
pOutTmp = pOutBuf;
// do encoding
while (*pInTmp)
{
if(isalnum(*pInTmp))
*pOutTmp++ = *pInTmp;
else
if(isspace(*pInTmp))
*pOutTmp++ = '+';
else
{
*pOutTmp++ = '%';
*pOutTmp++ = toHex(*pInTmp>>4);
*pOutTmp++ = toHex(*pInTmp%16);
}
pInTmp++;
}
*pOutTmp = '\0';
//sOut=pOutBuf;
//delete [] pOutBuf;
sOut.ReleaseBuffer();
}
strIn.ReleaseBuffer();
return sOut;
}就可以调用MyURLEncode来Encode你的那些日文了,再Post过去。