【发布时间】:2015-03-23 23:31:25
【问题描述】:
UTF-8 everywhere 提出了一个强有力的理由来完全避开微软的TCHAR、_T()、LPCTSTR 等等,也将wchar_t 推到一边,勇敢地拥抱一个基于 UTF-8 字符串的世界在狭窄的char 类型上。
这似乎很好,直到我使用 MFC DDX_Text() 宏来获取一个 CString 进出编辑控件。有没有合理的方法:
- 将
CStringA myString声明为 UTF-8 字符串(或作为退化大小写的 ASCII/ANSI 字符串) - 编译并定义
UNICODE - 通过适当的转换和/或临时变量将
myString传递到DDX_Text()的第三个参数,并从关联的编辑控件中获取合理的结果?
如果不是,如果您的应用程序想要使用 UTF-8(或退化情况下的 ASCII/ANSI),您会如何建议通过编辑控件处理字符串输入/输出?
(P.S. 这是由 Visual Studio 2013 鼓励仅使用 Unicode 的 MFC 推动的。鉴于 MFC 应用程序和使用 VS2013 的愿望,这需要定义 UNICODE... 或坚持使用已弃用的做事的方式。)
【问题讨论】: