这下有了。写一个象下面的 function 来转换字串,把转换完的字串给 Chameleon。
int ConvertToPrintable(char *pszInStr, char *pszOutStr)
{
char *cPtr = pszInStr"
int nLen = 0"
if (!pszInStr || !pszOutStr)
return 0" // Invalid string pointers.
*pszOutStr = \'\\0\'"
while(*cPtr)
{
if ((*cPtr > 31) && (*cPtr < 128))
{
pszOutStr[nLen++] = *cPtr"
pszOutStr[nLen] = \'\\0\'"
}
else
{
sprintf(pszOutStr + nLen, "\\\\0x%02X", (int) *cPtr)"
nLen += 4"
}
cPtr ++"
}
return nLen"
}
你原来的代码就应改成:
...
char szOutStr[1024]"
int nOutLen = 0"
const char szSex = "男""
...
if (ConvertToPrintable(szSex, szOutStr))
Message.Patient(0).SetSex(szOutStr)"
...
}
如果出来的结果不是中文,而是有 \\0xXX 的字串,你就还得写个反转换换函数。
|