2010-04-15 109 views
1

我讀取的Byte Array是從外部DLL文件調用的函數生成的,然後將其轉換(編碼)爲String。在本地窗口(如下所示)中,msg沒有尾部雙引號。缺少本地字符串的報價

這是一個錯誤,故障或標誌有問題嗎?

代碼:

Dim msgC(32) As Byte 
    Dim msg As String, length As Integer = 32 

    HW(msgC, length) 

    msg = System.Text.Encoding.Default.GetString(msgC) 

    Dim x As String = "hi", y As String = " ho" 
    Dim z As String = x & y 

當地人:

msg  "Hello World String 
msgC {Length=33}  Byte() 
x  "hi"   String 
y  " ho"   String 
z  "hi ho"   String 
+0

本地窗口中的Value列是否如此窄以至於它會關閉引號?嘗試拓寬它。 – 2010-04-15 18:58:49

+0

沒有。我刪除了比msg長的值的其他本地人(Me,e和sender)。 – Steven 2010-04-15 19:01:43

+0

嘗試'String.Copy(msg)'。 – SLaks 2010-04-15 19:05:54

回答

1

我懷疑,如果字符串包含嵌入的空(\0,ASCII字符代碼0)字符會發生這種事。

+0

就是這樣!我改變了該DLL還可以發送長度並使用Substring來修剪空字符 – Steven 2010-04-15 19:17:18

+1

或者,您可以使用具有索引和計數參數的GetString()重載:http://msdn.microsoft.com/en-us/ library/05cts4c3%28v = VS.100%29.aspx – 2010-04-15 19:23:31

+0

@Andy:謝謝! – Steven 2010-04-15 19:27:07