下面是中文转Unicode(十六进制)的例子。
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
std::string stringToHex(const std::string& input) {
std::cout << input<<"\n";
for (char c : input) {
std::cout << static_cast<int>((unsigned char)c) <<" ";
}
std::stringstream ss;
ss << std::hex << std::setfill('0');
for (char c : input) {
ss << std::setw(2) << static_cast<int>((unsigned char)c) << " ";
}
return ss.str();
}
int main() {
std::string str = "高峰期间,请注意安全";
std::string hexStr = stringToHex(str);
std::cout << "\nHex representation: \n" << hexStr << std::endl;
// b8 df b7 e5 c6 da bc e4 a3 ac c7 eb d7 a2 d2 e2 b0 b2 c8 ab
return 0;
}
输出结果为:
第二行是将一个中文字符(共10个 含逗号)转为两个十进制数字(20个 显然)。(“高” - 184 223)
第四行是转换后的十六进制。(184 223 - b8 df)
随记而已~