普通字符串如何转换成UNICODE字符串?
多谢

解决方案 »

  1.   

    U16 AnsiiNToUnicodeString(S8 *pOutBuffer, S8 *pInBuffer, U32 len  )
    {S16 count = -1;
    U8 charLen = 0;
    U8  arrOut[2];while(len)
    {UnicodeToUCS2Encoding((U16)*pInBuffer,&charLen,arrOut);
    // #ifdef MMI_ON_WIN32
    pOutBuffer[++count] = arrOut[0];
    pOutBuffer[++count] = arrOut[1];
    pInBuffer++;
    //#endif#ifdef __FOR_TESTING //MMI_ON_HARDWARE_P
    pOutBuffer[++count] = arrOut[1]; /*arrOut[0];*/
    pOutBuffer[++count] = arrOut[0]; /* arrOut[1];*/
    pInBuffer++;
    #endiflen--;}
    return count + 1;
    }注:S8 是char,  S16是 unsigned short, u8是char, u32是int
      

  2.   

    U8 UnicodeToUCS2Encoding(U16 unicode,U8 *charLength,U8 *arrOut)
    { U8 status = ST_SUCCESS;
    U8 index = 0; if(arrOut != 0)
    {

    if( unicode < 256 )
    {
    arrOut[index++] = *((U8*)(&unicode));
    arrOut[index] = 0;

    }
    else
    {
    arrOut[index++] = *((U8*)(&unicode));
    arrOut[index] =   *(((U8*)(&unicode)) + 1); }
    *charLength = 2;
    }
    else
    {

    status = ST_FAILURE;
    }
    return status;
    }