如何在C++中将Unicode字符串转换为Hexa字符串

k2arahey  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(142)

我有这个代码示例,它旨在将一些数据写入流中,以便稍后可以再次读取它。

  1. std::ostringstream oss;
  2. int a = 10;
  3. oss.write((char*)&a, sizeof(int));
  4. a = 5;
  5. oss.write((char*)&a, sizeof(int));
  6. // etc...
  7. std::cout << oss.str();

字符串
我正在尝试对这个示例进行单元测试,这就是为什么我想操作一些可以理解的数据的原因。
str()似乎返回一个Unicode数据字符串,例如:“\u0000\u0000\u0000@\u000a�#<\u0000\u0000�?”
我想检索这个字符串的int下的字符串十六进制格式,如'\0x0a\0x80\0x3f\0x3c”,而不是但我不知道如何管理做到这一点。
提前感谢任何提示!

cuxqih21

cuxqih211#

问题看起来像是你试图将二进制数据转换为十六进制字符串。
你可以试着跟着去做。

  1. std::string binaryData = oss.str();
  2. std::ostringstream hexStream;
  3. hexStream << std::hex << std::setfill('0');
  4. for (unsigned char byte : binaryData) {
  5. hexStream << "\\x" << std::setw(2) << static_cast<int>(byte);
  6. }
  7. std::cout << hexStream.str() << std::endl;

字符串

相关问题