鱼C论坛

 找回密码
 立即注册
查看: 318|回复: 3

[已解决]乱码

[复制链接]
发表于 2023-5-9 14:08:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1.         char  a[] = "Holle李明";
  2.        
  3.         CString str2;
  4.         str2.Format(_T("%s"), a);

  5.         OutputDebugString(str2);
复制代码



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

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

  1. char a[] = "Holle李明";
  2. CStringW str2;
  3. str2.Format(L"%S", a);
  4. OutputDebugStringW(str2);
复制代码


在这个例子中,我们使用了 CStringW 类型来存储转换后的字符串,并使用 L"%S" 格式化字符串来指定 a[] 是一个 char 类型的字符串。这样,你就可以避免编码不匹配的问题,从而正确地输出 str2。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-9 14:08:42 | 显示全部楼层    本楼为最佳答案   
这个问题可能是由于编码不匹配导致的。在这段代码中,a[] 是一个 char 类型的数组,它使用默认的编码方式(通常是 ASCII 编码),而 CString 使用的是 Unicode 编码。当你将 a[] 转换为 CString 时,可能会出现编码不匹配的问题,从而导致 str2 中出现乱码。

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

  1. char a[] = "Holle李明";
  2. CStringW str2;
  3. str2.Format(L"%S", a);
  4. OutputDebugStringW(str2);
复制代码


在这个例子中,我们使用了 CStringW 类型来存储转换后的字符串,并使用 L"%S" 格式化字符串来指定 a[] 是一个 char 类型的字符串。这样,你就可以避免编码不匹配的问题,从而正确地输出 str2。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-9 14:19:50 | 显示全部楼层
还是 乱码

点评

应该在他的帖子下面点“回复”,不然他收不到提醒  发表于 2023-5-9 16:48
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 19:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表