[vb.net]关于两个相同字符串对比的问题,结果总是不相等。
如图,两个变量需要对比,一个是MD52,一个是read1,都是string,所包含字符串输出看起来也是相同的,但是使用了几种方法进行对比,返回结果就是两个值不相等,求解。
...全文
请发表友善的回复…
发表回复
Tiger_Zhao 2017-01-06
- 打赏
- 举报
Imports System.Text.Encoding
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MD52 As String = "D41D8CD98F00B204E9800998ECF8427E" & vbNullChar
Dim read1 As String = "D41D8CD98F00B204E9800998ECF8427E"
'这两个值“看起来”一样'
MsgBox(MD52)
MsgBox(read1)
'用下面的方式可以进行区别'
Debug.Print(BitConverter.ToString(ASCII.GetBytes(MD52)))
Debug.Print(BitConverter.ToString(ASCII.GetBytes(read1)))
End Sub
End Class
44-34-31-44-38-43-44-39-38-46-30-30-42-32-30-34-45-39-38-30-30-39-39-38-45-43-46-38-34-32-37-45-00
44-34-31-44-38-43-44-39-38-46-30-30-42-32-30-34-45-39-38-30-30-39-39-38-45-43-46-38-34-32-37-45
EnForGrass 2017-01-06
- 打赏
- 举报
你调试看看两个变量的值 啊,首先比较一下两个字符串的长度看看是否相等
dyc136mm 2017-01-06
- 打赏
- 举报
你把两个字符串的值贴出来看看
dyc136mm 2017-01-06
- 打赏
- 举报
你把两个字符串的值贴出来看看
EnForGrass 2017-01-06
- 打赏
- 举报
你把两个字符串的值贴出来看看
dyc136mm 2017-01-06
- 打赏
- 举报
[Quote=引用 6 楼 dyc136mm 的回复:]请问这该怎么处理? [/Quote] 反正 MD5 是定长的,直接截断,简单粗暴。MD52 = MD52.Trim().Substring(0, 32).ToUpper read1 = read1.Trim().Substring(0, 32).ToUpper If MD52 = read1 Then MsgBox("ok") End If
Tiger_Zhao 2017-01-06
- 打赏
- 举报
[Quote=引用 6 楼 dyc136mm 的回复:]请问这该怎么处理? [/Quote]
反正 MD5 是定长的,直接截断,简单粗暴。
反正 MD5 是定长的,直接截断,简单粗暴。
MD52 = MD52.Trim().Substring(0, 32).ToUpper
read1 = read1.Trim().Substring(0, 32).ToUpper
If MD52 = read1 Then
MsgBox("ok")
End If
放开我的胡萝卜 2017-01-06
- 打赏
- 举报
文件中有些不可见字符
dyc136mm 2017-01-06
- 打赏
- 举报
貌似是在文本里加了回车?
dyc136mm 2017-01-06
- 打赏
- 举报
这是我查看,后面那行数据是我从文本里读取的
dyc136mm 2017-01-06
- 打赏
- 举报
Imports System.Text.Encoding Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim MD52 As String = "D41D8CD98F00B204E9800998ECF8427E" & vbNullChar Dim read1 As String = "D41D8CD98F00B204E9800998ECF8427E" '这两个值“看起来”一样' MsgBox(MD52) MsgBox(read1) '用下面的方式可以进行区别' Debug.Print(BitConverter.ToString(ASCII.GetBytes(MD52))) Debug.Print(BitConverter.ToString(ASCII.GetBytes(read1))) End Sub End Class
44-34-31-44-38-43-44-39-38-46-30-30-42-32-30-34-45-39-38-30-30-39-39-38-45-43-46-38-34-32-37-45-00 44-34-31-44-38-43-44-39-38-46-30-30-42-32-30-34-45-39-38-30-30-39-39-38-45-43-46-38-34-32-37-45