[vb.net]关于两个相同字符串对比的问题,结果总是不相等。

dyc136mm 2017-01-06 09:23:24
如图,两个变量需要对比,一个是MD52,一个是read1,都是string,所包含字符串输出看起来也是相同的,但是使用了几种方法进行对比,返回结果就是两个值不相等,求解。
...全文
666 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
引用 2 楼 dyc136mm 的回复:
引用 1 楼 Chinajiyong 的回复:
你把两个字符串的值贴出来看看
这俩值是取自不同位置,是两个变量
你调试看看两个变量的值 啊,首先比较一下两个字符串的长度看看是否相等
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
你把两个字符串的值贴出来看看
其中前一个是计算得来的,后一个用同样算法记录在文件得来的
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
你把两个字符串的值贴出来看看
这俩值是取自不同位置,是两个变量
EnForGrass 2017-01-06
  • 打赏
  • 举报
回复
你把两个字符串的值贴出来看看
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
引用 10 楼 Tiger_Zhao 的回复:
[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 是定长的,直接截断,简单粗暴。
        MD52 = MD52.Trim().Substring(0, 32).ToUpper
read1 = read1.Trim().Substring(0, 32).ToUpper
If MD52 = read1 Then
MsgBox("ok")
End If
  • 打赏
  • 举报
回复
文件中有些不可见字符
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
貌似是在文本里加了回车?
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
这是我查看,后面那行数据是我从文本里读取的
dyc136mm 2017-01-06
  • 打赏
  • 举报
回复
引用 5 楼 Tiger_Zhao 的回复:
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
用你的方式看了一下确实不一样,请问这该怎么处理?

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧