讀一字節的緩衝區:字節緩衝區,字符串
while (...)
{
builder.Append(Encoding.ASCII.GetString(buffer, index, 1));
++index;
}
我得到以下結果:「20202020202020202020202057363253304b4358」,它看起來像ASCII或HTML字符代碼。在C#中獲得真正的字符串的最佳和更快的方法是什麼?
讀一字節的緩衝區:字節緩衝區,字符串
while (...)
{
builder.Append(Encoding.ASCII.GetString(buffer, index, 1));
++index;
}
我得到以下結果:「20202020202020202020202057363253304b4358」,它看起來像ASCII或HTML字符代碼。在C#中獲得真正的字符串的最佳和更快的方法是什麼?
雖然我覺得有什麼不對您的代碼,同時獲得該字符串,反正你可以使用
byte[] buf = SoapHexBinary.Parse("20202020202020202020202057363253304b4358").Value;
var str = Encoding.ASCII.GetString(buf);
這將返回 W62S0KCX
PS:SoapHexBinary
是爲人熟知System.Runtime.Remoting.Metadata.W3cXsd2001
namespace :)
哈哈沒聽說過! – 2013-05-07 18:45:53
如果您獲得了整個緩衝區已,然後簡單地嘗試:
var myString = Encoding.Default.GetString(byteBuffer);
你是如何獲得'buffer'中的值以開始的?一個簡短但完整的例子在這裏真的很有用。 (另外,你不需要一次追加一個字符......) – 2013-05-07 16:59:18
緩衝區是DeviceIoControl調用的結果,這就是爲什麼我沒有提供任何示例,代碼很長並且毫無意義。看起來像字符串以某種方式翻轉和編碼。 – 2013-05-07 17:10:19