在不同于 Windows 的平台上,您可以轻松地使用char *字符串并将它们视为 UTF-8。
问题是在 Windows 上,您需要使用 wchar* 字符串 (W) 接受和发送消息。如果您使用 ANSI 函数 (A),您将不支持 Unicode。
因此,如果您想编写真正可移植的应用程序,您需要在 Windows 上将其编译为 Unicode。
现在,为了保持代码干净,我想看看推荐的处理字符串的方法是什么,一种最大限度地减少代码丑陋的方法。
您可能需要的字符串类型:std::string, std::wstring, std::tstring, char *, wchat_t *, TCHAR*, CString(ATL 之一)。
您可能遇到的问题:
cout/cerr/cin及其 Unicode 变体wcout,wcerr,wcin- 所有重命名的宽字符串函数和它们的 TCHAR 宏 -
strcmp和.wcscmp_tcscmp - 代码中的常量字符串,使用 TCHAR 你将不得不用
_T()宏填充你的代码。
您认为哪种方法最好?(欢迎举例)
就个人而言,我会采用一种std::tstring方法,但我想看看如何在必要的地方进行转换。