【发布时间】:2013-12-15 01:31:50
【问题描述】:
我的公司使用如下代码:
std::string(CT2CA(some_CString)).c_str()
我相信它将 Unicode 字符串(其类型为 CString)转换为 ANSI 编码,并且该字符串用于电子邮件的主题。但是,电子邮件的标头(包括主题)表明邮件客户端应将其解码为 unicode(原始代码就是这样做的)。因此,某些德语字符(如“ä ö ü”)将无法正确显示为标题。
我是否可以将此标头放回 UTF8 并存储到 std::string 或 const char* 中?
我知道有很多更聪明的方法可以做到这一点,但我需要保持代码坚持原来的方式(即将标头作为 std::string 或 const char* 发送)。
提前致谢。
【问题讨论】:
-
你可能需要 std::wstring
-
没有可转换为 utf8 的预编译宏。只需创建自己的,使用 CP_UTF8 调用 WideCharToMultiByte()。
标签: c++ visual-studio-2010 cstring stdstring