string - 在 VB.net 中将 Byte() 转换为 String 后从 String 中删除 null Char
问题描述
我有一个来自 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 个字符。
推荐阅读
- python - Google Cloud Storage bucket.get_blob 到已验证文件路径返回无
- java - Visual Studio for Mac 2019:更新后无法在 Android 上构建和部署
- c++ - C 中带移位的复合运算符或如何在 32 位有符号整数中转换 20 位 2' 补数
- html - 如何停止视频自动播放
- php - 字体真棒图标在 WordPress 网站上显示为倾斜的“汉堡菜单”
- android - 实现可扩展回收器android的最佳方法
- javascript - (vuejs) 使用 axios 和 quasar 未定义的数组
- c++ - 二叉树预序
- docker - macos 上的 ADVERTISED_LISTENER 问题
- java - ShapeDrawable 以编程方式绘制圆切边