【发布时间】:2011-01-13 13:14:17
【问题描述】:
如何从 base64 字符串转换为 hexa 字符串(我正在使用 ubuntu - c++ 代码)。我的六边形字符串我想像 0x0c .... 等等。需要帮忙。有人可以给我一个例子吗?谢谢!
【问题讨论】:
-
至少有 12 种不同的方式可以将 base64 编码的字符串转换为十六进制数字字符串,所有这些方法都有不同的结果——你说的是哪种结果并不明显。请详细说明您想到的转换类型。
-
这需要两次转换。首先从 base64 到 unsigned char[]。然后从那个到一串十六进制数字。 c++ 标签下的其他问题很好地涵盖了这两个问题。
-
@Hans:这不太准确。他的base64字符串已经是字符数组了;所需要的是将其从字符数组转换为整数,然后再转换回具有十六进制编码的字符数组。
-
例如我有字符串值:std::string ssir = "DNQwSinfOUSSWd+U04r23A==";我想创建一个 char values[]={ 0x0C, 0xD4, 0x30, 0x4a, 0x29, 0xdf, 0x39, 0x44, 0x92, 0x59, 0xdf, 0x94, 0xd3, 0x8a, 0xf6, 0xdc };这是ssir base64的六边形
-
其实不是。在内存中,它都是二进制的。那个
0x0C?那真的是00001100。正如 Hans Passant 所说,您确实希望 Base64 进行二进制解码。您通常免费获得的二进制到十六进制(例如,在调试器中查看char values[]时。)