要把包含中文的CString转成char有一点要注意,如果直接写成:CString str = _T("中文"); char test[20]; strcpy(test,(LPSTR)(LPCTSTR)str); 是不行的,test中包含会是乱码。 strncpy(test, (const char *)content.GetBuffer(),content.GetLength() + 1); 这样也不对,这会只复制它的第一个字节. 如下的写法是能得到正确的结果: strcpy(test, CW2A(str));