问题场景
在项目中需要上传excel文件(包含各国语言),但是接收到的是二进制数据,输出呈现的是乱码状态,直接std::cout输出会截断数据,不能完全输出。因此推测是二进制数据转换为char时,出现了’\0’,导致输出截断。在进一步处理中,想将接受为char[]的excel数据保存到string中。
char a[10] = "123\0456";
string s(a);
cout << s << endl;
//输出123
解决方案
//1.memcpy
string e;
e.resize(10);
memcpy(&e[0], a, 10);
//2. string 构造
string f(a, 10);