【发布时间】:2016-10-02 06:09:40
【问题描述】:
当我在 C 或 C++ 中#include <windows.h> 时,我不得不决定字符的格式,其中TCHAR 等于char 或wchar_t。
我已经环顾了很多地方,就this one 之类的帖子或this 之类的网站而言,wchar_t 的事情在很久以前就出现在 UTF8 之前,出于各种原因,在现代编程中并不是一个特别好的 Unicode 解决方案。然而,这些并没有说明已经在 wchar_t 中运行的现有系统的支持。
所以我的问题是,我应该使用哪一个?
如果我使用普通的旧char,这是否会在未来被MS 抛弃,因为归根结底,API 的wchar_t 版本更新?
或者如果我使用wchar_t,让我的代码在其他现代平台上运行会很痛苦吗?这些现代平台后来在UTF8 中使用普通的旧char 开发?
【问题讨论】:
-
Windows 中的 Unicode 是
wchar_t。不推荐使用 ANSI API/char,您应该为所有新的 Windows 应用程序使用 Unicode/wchar_tAPI。 -
Windows 是 UTF16,对于 MS VC 意味着 wchar_t,进一步阅读:msdn.microsoft.com/en-us/library/c426s321.aspx
-
stackoverflow.com/questions/14132260/… 肯定是相关的,但不是重复的。评论@Code Gray 评论references 这也是相关的。
-
更好的问题是:我应该继续使用
TCHAR还是只使用WCHAR?如前所述,不推荐使用 ANSI/char函数。WCHAR/wchar_t是现在的标准,不管 UTF16 的优点或缺点。
标签: c++ c windows winapi unicode