lm68140318 发表于 2023-5-9 14:08:18

乱码

        chara[] = "Holle李明";
       
        CString str2;
        str2.Format(_T("%s"), a);

        OutputDebugString(str2);


我的问题:str2 是乱码??

isdkz 发表于 2023-5-9 14:08:42

这个问题可能是由于编码不匹配导致的。在这段代码中,a[] 是一个 char 类型的数组,它使用默认的编码方式(通常是 ASCII 编码),而 CString 使用的是 Unicode 编码。当你将 a[] 转换为 CString 时,可能会出现编码不匹配的问题,从而导致 str2 中出现乱码。

为了解决这个问题,你可以尝试将 a[] 转换为 Unicode 编码。例如,你可以使用以下代码:

char a[] = "Holle李明";
CStringW str2;
str2.Format(L"%S", a);
OutputDebugStringW(str2);


在这个例子中,我们使用了 CStringW 类型来存储转换后的字符串,并使用 L"%S" 格式化字符串来指定 a[] 是一个 char 类型的字符串。这样,你就可以避免编码不匹配的问题,从而正确地输出 str2。

lm68140318 发表于 2023-5-9 14:19:50

还是 乱码
页: [1]
查看完整版本: 乱码