//原始字符串为“***”,即3个星号,以UTF32格式存储,内存格式以下: char src[12] = { 0x2A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00 }; //目的:将此内存串转为std::string格式,打印输出为“***” std::u32string s32 = std::u32string((const char32_t*)src, 3);//UTF32为一个字符占4个字节,因此此处为src.len/4 = 3 std::string s = std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t >{}.to_bytes(s32); std::cout << s << std::endl;