Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将八进制字符串转换为可读字符串(C#)?_C# - Fatal编程技术网

如何将八进制字符串转换为可读字符串(C#)?

如何将八进制字符串转换为可读字符串(C#)?,c#,C#,我正在使用一个用于C#的SNMP库,它没有很好的文档。 当我请求一个日期时,它会返回一个八进制字符串,我不知道该怎么处理它 当我将其转换为字符串时,它会变成: 07 DC 02 17 0F 14 0E 00 2D 02 00根据以下文件: 返回八进制对象的字符串表示形式。如果 在对象中找到不可打印的字符,输出为 字符串的十六进制表示形式。(重写Object.ToString() 请确保没有不可打印的字符 更新 关于实现的更多详细信息:。只是一个猜测 var b= "07 DC 02 17 0F

我正在使用一个用于C#的SNMP库,它没有很好的文档。 当我请求一个日期时,它会返回一个八进制字符串,我不知道该怎么处理它

当我将其转换为字符串时,它会变成:
07 DC 02 17 0F 14 0E 00 2D 02 00根据以下文件:

返回八进制对象的字符串表示形式。如果 在对象中找到不可打印的字符,输出为 字符串的十六进制表示形式。(重写Object.ToString()

请确保没有不可打印的字符

更新

关于实现的更多详细信息:。

只是一个猜测

var b= "07 DC 02 17 0F 14 0E 00 2D 02 00"
        .Split(' ')
        .Select(s => byte.Parse(s, NumberStyles.HexNumber))
        .ToArray();

int year =b[0]*256 + b[1];
int month = b[2];
int day = b[3];
int hour = b[4];
int min = b[5];
int sec = b[6];

DateTime dt = new DateTime(year, month, day, hour, min, sec);
输出:2012年2月23日下午3:20:14


编辑

现在这不再是猜测了。 以下是问题的格式


编辑-2

var strdateTime = 
    String.Format("{0}/{1,2:00}/{2,2:00} {3,2:00}:{4,2:00}:{5,2:00}.{6,2:00} {7}{8,2:00}:{9,2:00} UTC",
            year,month,day,hour,min,sec,
            b[7],Convert.ToChar(b[8]),b[9],b[10]);

输出:2012/02/23 15:20:14.00-02:00 UTC

您应该提及您正在使用的SNMP库…您正在使用的库是什么?非常具体的格式我认为您需要首先将其转换为日期时间。不幸的是,示例中包含了相当多的不可打印内容。@HenkHolterman是的,这是因为它应该是编码的时间戳,而不是字符串。他做错了什么,没有给我们提供足够的信息来帮助我们是的,看起来是个好的猜测。但它会留下一些未计算的字节(毫秒?)