在 VB.net 中将 Byte() 转换为 String 后从 String 中删除 null Char

Remove null Char from String after convert Byte() to String in VB.net

我有一个来自 dll 的字符串。据推测,该字符串是由dll中的Byte()转换而来的。

下面是我如何从 dll 中获取值的片段:

    'DLL declare : Public Function getData(boolData as Boolean, strData1 as String, strData2 as String) as Boolean 

    Call objValue.getValue(True, strValueA, strValueB) 

    strResultA = strValueA

我想将字符串转换成十六进制值。当我试图在互联网上使用十六进制转换器确认十六进制结果是否正确时。十六进制值不相同。

我怀疑它在字符串中有一些空值,因为当我将字符串输出到文本框并进行转换时,它给出了正确的十六进制值。例如:toHex(tbResultA.text),将给出正确的十六进制值。

如何从字符串中删除空字符?我已经尝试了多种方法来删除它,但它不起作用。 这是我试过的片段:

    1. strResultA = strValueA.Replace(vbNullChar, "")

    2. strResultA = strValueA.Replace(Chr(0, "")

    3. strResultA = strValueA.Replace(Convert.ToChar(0), "")

    4. strResultA = strValueA.Replace(Convert.vbNullChar, "")

    5. strResultA = Replace(strValueA, Chr(0), "")

这是我将字符串转换为十六进制的代码片段:

    Private Function toHex(ByVal strValue As String) As String
      Dim byteArray() As Byte
      Dim hex As System.Text.StringBuilder = New System.Text.StringBuilder
      byteArray = System.Text.ASCIIEncoding.ASCII.GetBytes(strValue)
      For i As Integer = 0 To byteArray.Length - 1
         hex.Append(byteArray(i).ToString("x"))
      Next
      Return hex.ToString()
    End Function


    'My fuction calling, strHexA will be kept in a text file:
    Dim strHexA as String = toHex(strResultA)

谢谢。

我不确定是否有空值。但我确信它被编码为 ASCII。十六进制之前的字符串应该是这样的“!N029dR_:OV7LHdN”。

无论如何,谢谢。我已经得到了答案。因为我知道字符串总是 16 个字符。

我用**

strResultA = strValueA.Substring(0, 16)

** 只得到我想要的 16 个字符。