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

时间:2011-06-23 07:49:49

标签: c# string hex

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

FF是暗示名字结尾的字符。

我到目前为止所得到的是我可以读到它的文字字符串,)830 =4ÿ,这对于我正在尝试创建的内容一点也不友好。

现在仅仅通过一个名称就可以猜出我正在做什么,但这是我唯一能够坚持的是整个自定义字符串。

3 个答案:

答案 0 :(得分:0)

这是从十六进制字符串

获取字符串的代码
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();
    }

如果您解释输入字符串,十六进制或字节数组的格式,将会很高兴。

答案 1 :(得分:0)

啊,我看到发生了什么。请记住,使用Hex时,您可以使用Unicode,Shift JI和Little-endian。据我所知,你似乎有一个不正确的十六进制表,你正在尝试阅读。对不起,如果我的回答没有帮助。

答案 2 :(得分:0)

如果您对十六进制值进行解码并希望输出为ascii编码,那么您就可以得到上面所述的内容,如使用此online hex decoder所示。

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

A-Z = 0x04 - 0x29

EG:'A'= 04,'B'= 05,......'Z'= 29

a-z = 0x30 - 0x55

EG:'a'= 30,'b'= 31,....'z'= 55

这应该足以让你获得一个可读的字符串。