在VB.net中将Byte()转换为字符串后,从字符串中删除空字符

问题描述 投票:0回答:1

我有一个来自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

我想将字符串转换为十六进制值。当我尝试确认十六进制结果正确时,请使用Internet中的十六进制转换器。十六进制值不相同。

我怀疑它的字符串中有一些空值,因为当我将字符串输出到文本框并进行转换时,它会给出正确的十六进制值。例如: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)

谢谢。

string vb.net character-encoding null-character
1个回答
0
投票

我不确定是否为空。但我确定它被编码为ASCII。十六进制前的字符串假定为“!N029dR_:OV7LHdN”。

无论如何,谢谢。我已经知道答案了。由于我知道该字符串始终为16个字符。

我使用**

strResultA = strValueA.Substring(0,16)

**仅获得我想要的16个字符。

© www.soinside.com 2019 - 2024. All rights reserved.