是在定义 UNICODE 时对 CString 使用 UTF-16 的 MFC 应用程序

Posted

技术标签:

【中文标题】是在定义 UNICODE 时对 CString 使用 UTF-16 的 MFC 应用程序【英文标题】:is MFC application using UTF-16 for CString when UNICODE is defined 【发布时间】:2017-05-17 22:08:56 【问题描述】:

如果我们定义 UNICODE,我知道 CString 使用 WCHAR。 但是,它是 UTF-16 编码的吗? 有官方参考吗? 我正在尝试在 CString 中查找字符的 unicode 代码点值。

【问题讨论】:

【参考方案1】:

是的,它是 UTF-16 编码的,因为 Windows 本身是基于 UTF-16 的。我不确定是否有任何文件可以明确说明。

请注意,对于任何高于 0xffff 的代码点,尤其是表情符号,代码点将需要 CString 中的两个字符。这称为代理对。

【讨论】:

这里明确表示:msdn.microsoft.com/en-us/library/windows/desktop/… @JoeWillcoxson 感谢您的链接,该链接详细介绍了 Windows 使用的内容。我的评论更多的是关于CString

以上是关于是在定义 UNICODE 时对 CString 使用 UTF-16 的 MFC 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

CString构造函数

CString Unicode 转 UTF-8

string,char*及CString类型的相互转换

Cstring与char*String转Cstring(unicode编码)

CString和string在unicode与非unicode下的相互转换(转)

unicode下char*和CString