我公司使用这样的代码:
std::string(CT2CA(some_CString)).c_str()
我认为它将Unicode字符串(其类型为CString)转换为ANSI编码,此字符串用于电子邮件的主题.但是,电子邮件的标题(包括主题)表示邮件客户端应将其解码为unicode(这是原始代码的作用).因此,一些像"äöü"这样的德国字母将无法正确显示为标题.
无论如何,我可以将此标头放回UTF8并存储到std :: string或const char*?
我知道有很多更聪明的方法可以做到这一点,但我需要保持代码坚持原来的(即将头部发送为std :: string或const char*).
提前致谢.
笨拙:这是'|' 并不是 '&' !
*buffer++ = 0xC0 | (c >> 6); *buffer++ = 0x80 | (c & 0x3F);