如何在embarcadero c中将Unicode字符串转换为char *或char * const?
解决方法:
“ Unicode字符串”确实还不够具体,无法知道您的源数据是什么,但是您可能的意思是“ UTF-16字符串存储为wchar_t数组”,因为这是大多数不了解正确术语的人所使用的.
尽管“ embarcadero”有一些约定,但“ char *”也不足以知道您要定位的目标.除非另有说明,否则我将假设您需要UTF-8数据.
我也将我的例子限制在VS2010中
// your "Unicode" string
wchar_t const * utf16_string = L"Hello, World!";
// #include <codecvt>
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>,wchar_t> convert;
std::string utf8_string = convert.to_bytes(utf16_string);
假设wchar_t字符串与Windows一样是UTF-16,否则是可移植代码.