0

我正在尝试创建一个将十六进制转换为文本文件的小程序,以便我可以读取其中的内容。我的意思是我有一个 .dat 文件,但我想知道它在字段中的内容。然后我想让它保存每个值到如下所示的行

INSERT INTO `database` VALUES ('813000', '12ÐÇXOÀñ°ü', '0', '0', '0', '0', '0', '0', '0', '0', '28', '0', '0', '3900340', '0', '0', '0', '0', '0', '0', '0', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '00', '00', '00', '0000', '0000', '0', '0', '138');

这是十六进制代码

98B10100476C69747465727942656C740000000014001900000000000000000000000000E505000000000000000000005400000000000000000088138813000000000000000035000000000000000000000000000000000052696768747E636C69636B7E746F7E65717569707E6F6E7E77616973742E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我知道这是什么意思,因为我亲手完成了它,但这是一个很长的路要走。以上十六进制翻译成我需要的形式

INSERT INTO `cq_itemtype` VALUES ('111000', 'GlitteryBelt', '20', '0', '25', '0', '0', '0', '0', '0', '0', '0', '1509', '0', '0', '0', '84', '0', '0', '0', '0', '5000', '5000', '0', '0', '0', '0', '0', '0', '0', '53', '00', '00', '00', '0000', '0000', '0', '0', '0');

我是 C# 新手,仍在学习。我有成千上万个像上面那样需要翻译的十六进制代码......所以即使是一个简单的代码,它会给我每个十六进制部分的含义,我将不胜感激。

4

1 回答 1

0

你可以试试这个方法:

public string ConvertHexToString(string hexInput, System.Text.Encoding encoding)
{
    int numberChars = hexInput.Length;
    byte[] bytes = new byte[numberChars / 2];
    for (int i = 0; i < numberChars; i += 2)
    {
        bytes[i / 2] = Convert.ToByte(hexInput.Substring(i, 2), 16);
    }
    return encoding.GetString(bytes);
}

并使用如下:

string hex = "Your hex";
string result = ConvertHexToString(hex, System.Text.Encoding.Unicode);
于 2013-06-29T18:30:15.610 回答