我的代码
char   *pstr   = this->m_str.GetBuffer(this->m_str.GetLength());
//"如何得到汉字的内码?";   
char   buf[3]   ;   
//buf[2]   =   0;  
for(int i=0;i<(int)strlen(pstr);i=i+2)
{
TRACE("\r\n");
strncpy(buf,   pstr+i,   2);
buf[2]='\0';
TRACE("%s %X %X ",buf, pstr[i],pstr[i+1]);   
}
TRACE("\r%X %X %d\r",buf[0],buf[1],sizeof(buf[0])); char   chh   = (char)0xC6;   
char   chl   = (char)0xFB;   
unsigned   char   k[4]   =   {chh, chl}; 
unsigned   char   k1[]   =   {0xC6,   0xFB,   '\0'}; 
TRACE("\r\n%s",k);
TRACE("\r\n%s",k1);

解决方案 »

  1.   

    请试一下下面的代码:int i = -128;
    TRACE("0x%02X\r\n", i);  
    TRACE("0x%02X\r\n", (BYTE)i);
      

  2.   

    char  buf[3]  ;  
    //buf[2]  =  0;  
    for(int i=0;i <(int)strlen(pstr);i=i+2) 
    {
    TRACE("\r\n"); 
    strncpy(buf,  pstr+i,  2); 
    buf[2]='\0'; 
    TRACE("%s %X %X ",buf, (unsigned char)pstr[i],(unsigned char)pstr[i+1]);  

    TRACE("\r%X %X %d\r",(unsigned char)buf[0],(unsigned char)buf[1],(unsigned char)sizeof(buf[0])); 
      

  3.   

    strtemp.Format("%x",pstr[i]);
    strtemp=strtemp.Right(2);//非常关键
    这个是我自己的解决办法,确实长知识了。分得发,我的方法也发上来
      

  4.   

    把char改为unsigned char就行了