簡體   English   中英

如何將OctetString轉換為可讀的String(C#)?

[英]How do I convert an OctetString into a readable String(C#)?

我正在為C#使用SNMP庫,但它沒有很好的文檔。 當我請求日期時,它將返回一個OctetString,我不確定該如何處理。

當我將其轉換為String時,它變為:07 DC 02 17 0F 14 0E 00 2D 02 00

只是一個猜測

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


編輯

現在不再是猜測。 這是問題的SNMPv2-TC DateAndTime格式


編輯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

根據OctetString.ToString方法的文檔:

返回OctetStrig對象的字符串表示形式。 如果在對象中找到不可打印的字符,則輸出為字符串的十六進制表示。 (重寫Object.ToString()。)

請確保沒有不可打印的字符。

更新資料

有關實現的更多詳細信息: OctetString.ToString()方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM