如何把中文转换为ascii码

解决方案 »

  1.   

    你指的ASCII码是HEX编码方式吗,看看这个extern "C" int PASCAL asciitohex(LPSTR sAsc,int iLength,LPSTR sReply)
    {
    int i,j=0;
    BYTE ch1,ch2;
    BYTE * lsData;
    BYTE * lsReply; if(sAsc==NULL)
    return AG_PARAM1_ERROR;
    if(iLength>512)
    return AG_PARAM2_ERROR;
    if(sReply==NULL)
    return AG_PARAM3_ERROR;
    lsData=new BYTE[iLength];
    lsReply=new BYTE[iLength*2+1];
    memcpy(lsData,sAsc,iLength);
    for(i=0;i<iLength;i++){
    ch1=lsData[i]>>4; //高四位
    ch2=lsData[i]&0x0f; //低四位
    lsReply[j++]=(ch1>=0&&ch1<=9)?(ch1+0x30):(ch1+0x37);
    lsReply[j++]=(ch2>=0&&ch2<=9)?(ch2+0x30):(ch2+0x37);
    }
    lsReply[j]=0x00;
    memcpy(sReply,lsReply,j+1);
    delete lsReply;
    delete lsData;
    return 0;
    }
      

  2.   

    比如:
        USHORT Format3[MAX_PATH] = {'你','\0'};            
        Format3[0]=53484;
    如果现在我需要
        char strTmp[]="好";
        我如何把strTmp 赋给 Format3
      

  3.   

    USHORT Format3[MAX_PATH]={0};
        char strTmp[]="好";
        我如何把strTmp 赋给 Format3
      

  4.   

    中文是两个ASCII的编码方式,怎么获取的,我也忘记了。
    如果是英文,即非UNICODE方式,直接读取就是了:
    char ch='a';
    int asc=(int)ch;在UNICODE模式下,两个ASCII字符组成一个汉字,需要分开读取,怎么读取的,我给你找找看。