……void CTitleDisExtension::Default(CHttpServerContext* pCtxt, LPTSTR pstrbarid, LPTSTR pstrtbarid, LPTSTR pstrencode)
{
StartContent(pCtxt);
WriteTitle(pCtxt);
char encode = this->SelectEncode(pstrencode);
*pCtxt << _T("encode:");
*pCtxt << _T(&encode); EndContent(pCtxt);
}……char CTitleDisExtension::SelectEncode(LPTSTR pstrencode)
{
char res = '1';
char* encode1 = pstrencode;
CString encode;
encode.Format("%s", encode1);
if(encode == "gb"){
res = '1';
}else if(encode == "big5"){
res = '2';
}else if(encode == "english"){
res = '3';
} return res;
}输出结果:
<html><head><title>Default MFC Web Server Extension</title></head><body>encode:1烫烫烫烫巴?烫烫磅?/body></html>结果是正确的,但后面的哪串乱码是怎么来的?
请高手指点!
{
StartContent(pCtxt);
WriteTitle(pCtxt);
char encode = this->SelectEncode(pstrencode);
*pCtxt << _T("encode:");
*pCtxt << _T(&encode); EndContent(pCtxt);
}……char CTitleDisExtension::SelectEncode(LPTSTR pstrencode)
{
char res = '1';
char* encode1 = pstrencode;
CString encode;
encode.Format("%s", encode1);
if(encode == "gb"){
res = '1';
}else if(encode == "big5"){
res = '2';
}else if(encode == "english"){
res = '3';
} return res;
}输出结果:
<html><head><title>Default MFC Web Server Extension</title></head><body>encode:1烫烫烫烫巴?烫烫磅?/body></html>结果是正确的,但后面的哪串乱码是怎么来的?
请高手指点!
{
StartContent(pCtxt);
WriteTitle(pCtxt);
char encode = this->SelectEncode(pstrencode);
*pCtxt << _T("encode:");
*pCtxt << (int)encode; EndContent(pCtxt);
}
{
StartContent(pCtxt);
WriteTitle(pCtxt);
LPCTSTR encode = (LPCTSTR)this->SelectEncode(pstrencode);
*pCtxt << _T("encode:");
*pCtxt << encode; EndContent(pCtxt);
}LPTSTR CTitleDisExtension::SelectEncode(LPTSTR pstrencode)
{
TCHAR res1[] = _T("1");
TCHAR res2[] = _T("2");
TCHAR res3[] = _T("3");
LPTSTR res res1;
LPTSTR encode1 = pstrencode;
CString encode;
encode.Format("%s", encode1);
if(encode == "gb"){
res = res1;
}else if(encode == "big5"){
res = res2;
}else if(encode == "english"){
res = res3;
} return res;
}
你的意思大概只想输出一个字符吧,但输出的时候,会把从这个字符的位置起到第一个空字符中间的字符全部输出。*pCtxt << 输出一个以空字符结束的一个串。
============================
结果是正确的,但后面的哪串乱码是怎么来的?
第二种方法仍然会出现乱码?
后面的乱码估计是没有了结束符号'\0'
你都用CString就好了。
{
StartContent(pCtxt);
WriteTitle(pCtxt);
long int encode = this->SelectEncode(pstrencode);
*pCtxt << _T("encode:");
*pCtxt << encode; EndContent(pCtxt);
}long int CTitleDisExtension::SelectEncode(LPTSTR pstrencode)
{
long int res = 0;
LPTSTR encode1 = pstrencode;
CString encode;
encode.Format("%s", encode1);
if(encode == "gb"){
res = 1;
}else if(encode == "big5"){
res = 2;
}else if(encode == "english"){
res = 3;
} return res;
}
(重载了operator <<几种数据类型?)
LPCTSTR psz
);
CHttpServerContext& operator<<(
long int dw
);
CHttpServerContext& operator<<(
short int w
);
CHttpServerContext& operator<<(
const CHtmlStream& stream
);
CHttpServerContext& operator<<(
double d
);
CHttpServerContext& operator<<(
float f
);
CHttpServerContext& operator<<(
const CLongBinary& blob
);
CHttpServerContext& operator<<(
const CByteArray& array
);