GLib API 将十六进制字符串转换为 ASCII 字符串?
我不敢相信 GLib 中没有 API 可以做到这一点,目前我只发现人们在做自己的转换,比如 此处和此处(名为“解码”的函数)。我真的很想找到一种方法在简单的 GLib 调用中做到这一点,但如果没有办法,上述方法对我不起作用,因为前者是 C++ (我正在使用 C/GObject)而后者似乎工作不完美(我对结果的长度有问题)。
TIA
I cannot believe there is no API to do this in GLib, for now I have only found people doing their own conversion, like here and here (function named "decode"). I would really like to find a way to do this in a simple GLib call, but if there is no way, the above methods don't work for me because the former is C++ (I'm using C/GObject) and the latter doesn't seem to work perfectly (I'm having problems with the length of the result).
TIA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如前所述,这有点不常见。如果您有足够短的十六进制字符串,则可以在其前面添加
0x
前缀并使用strtoll()
。但对于任意长度的字符串,这里有一个 C 函数:As mentioned, this is a bit uncommon. If you have a short enough hex string, you can prefix it with
0x
and usestrtoll()
. But for arbitrary length strings, here is a C function:我不是 100% 确定“十六进制字符串”是什么意思,但可能是 这个线程会有一些帮助。
I'm no 100% sure what you mean by "hexadecimal string" but may be this thread will be of some help.