如何将 CString 转换为字节

Posted

技术标签:

【中文标题】如何将 CString 转换为字节【英文标题】:how to convert CString to Bytes 【发布时间】:2009-10-30 14:12:08 【问题描述】:

我实际上是在尝试将 csharp 代码转换为 c... 下面是 C# 代码..

CString data = "world is beautiful";    
Byte[] quote = ASCIIEncoding.UTF8.GetBytes(data);

在上面的代码中......它将字符串转换为字节......类似地,我可以使用 C.. 任何人都可以说出 C 中的等效代码是什么吗? 请大家帮帮我

【问题讨论】:

.Net 没有CString 类;你的意思可能是string 【参考方案1】:

好吧,CString 是一个 C++ 类,所以用 C 来做这件事有点不太可能。

但如果您希望将其作为标准的多字节编码字符串,则可以执行以下操作

CString data    = "world is beautiful";
CStringA mbStr  = data;
char* bytes     = mbStr.GetString();

【讨论】:

你回复的tanx..但仍然将它作为字符串而不是字节来读取..有意义吗 一个字符数组是一个字节数组。仅仅因为您查看调试器并将其解释为一组字符既不存在也不存在。你确实有一个字节数组。【参考方案2】:

在 C 中,char 类型被定义为内存中的一个字节。因此,将字符串存储为 char * 相当于在 C# 中存储字节数组。

【讨论】:

发帖者询问如何将 Unicode 字符串编码为 UTF-8。 @Jonathan:这是一个严厉的反对意见。原来的问题没有提到UTF8,只是作为一个例子。

以上是关于如何将 CString 转换为字节的主要内容,如果未能解决你的问题,请参考以下文章

CString到字节和字节到CByteArray转换-MFC

C++CString转换为const char *类型

在 vc++ 中将 Unicode 字节数组转换为 CString

如何将 CString 转换为 CByteArray?

MFC中如何吧CString类型转换为double或int型??

MFC中如何吧CString类型转换为double或int型?