C#十六进制到字符串的问题

本文关键字:问题 字符串 十六进制 | 更新日期: 2023-09-27 18:20:10

i用CSharp语言制作程序。但是,我有一个大问题。我正在制作一个程序,通过十六进制读取文件,并将十六进制转换为字符串。但是,我不能把绳子弄得很好。蓝色的是一个十六进制代码,我想把它转换成字符串。这是十六进制代码。。。

但我只能得到59fd50a62fb9a8ef,不包括文件扩展名。

我想得到像59fd50a62f9a8ef.bmp 这样的完美字符串

我该怎么办?

这是一个将十六进制转换为字符串的源代码。

    string toString(string hexString)
    {
        var bytes = new byte[hexString.Length / 2];
        for (var i = 0; i < bytes.Length; i++)
        {
            bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
        }
        return Encoding.Unicode.GetString(bytes);
    }

C#十六进制到字符串的问题

您无法从突出显示的字节中获取文件扩展名。据我所知,它们包含一个十六进制文件名(您已经成功提取了该文件名)、一个字符串结尾字符(两个零)、位图的开头(BM)和位图的长度(以小端序表示的36 10 00 00)。因此,要获得文件名,只需将.bmp附加到十六进制字符串中即可。

但是,如果图像并不总是位图,那么您应该创建一个函数,从字符串结束后的字节推断文件类型。