如何将一组十六进制字节转换为自定义字符串

本文关键字:字节 十六进制 转换 字符串 自定义 一组 | 更新日期: 2023-09-27 18:00:13

所以基本上我需要找到一种方法来转换它;29 38 33 30 3D 34 FF;齐达内

FF是表示名称末尾的字符。

到目前为止,我所得到的是,我可以将其解读为文字字符串,)830=4ï,这对我试图创建的内容来说根本不友好。

现在,仅凭这个名字,你就可以猜到我在做什么,但这是我唯一陷入困境的是整个自定义字符串。

如何将一组十六进制字节转换为自定义字符串

这是从十六进制字符串中获取字符串的代码,

private string HexString2Ascii(string hexString)
    {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i <= hexString.Length - 2; i += 2)
    {
    sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber))));
    }
    return sb.ToString();
    }

如果你能解释一下输入字符串、十六进制或字节数组的格式,我会很高兴。

啊,我明白发生了什么。请记住,当使用Hex时,您有Unicode、Shift-JI,在您的情况下还有Little-endian。据我所知,你目前试图阅读的内容似乎有一个不正确的十六进制表。如果我的回答没有起到足够的作用,我很抱歉。

如果您解码十六进制值并期望输出是ascii编码的,那么您就可以得到上面所说的内容,正如使用这个在线十六进制解码器所看到的那样。

该字符串显然不是ascii编码的。我不能确定确切的编码,但通过查看值、预期输出和值之间的差异,你可以预测如何将值映射到字母:

A-Z=0x04-0x29

例如:"A"=04,"B"=05Z’=29

a-z=0x30-0x55

例如:"a"=30,"b"=31z'=55

这应该足以为您提供一个可读的字符串。