Vbscript QTP:具有相同值的两个变量的不同长度

Vbscript QTP:具有相同值的两个变量的不同长度,vbscript,qtp,Vbscript,Qtp,我在尝试比较两个变量时遇到了意想不到的困难: 第一个变量来自XML: For i = 0 To UBound(array, 2) If Bk = array(0, i) Then Book= cstr(array(1, i)) Exit For End If Next 想象一下Book=“LONDON” 第二个变量(SQLBook)来自SQL select,如果在QTP var BOOK和SQLBook中使用WATCH,视觉上是相等的,但是如果我们通

我在尝试比较两个变量时遇到了意想不到的困难:

第一个变量来自XML:

For i = 0 To UBound(array, 2)
    If Bk  = array(0, i) Then
       Book= cstr(array(1, i))
      Exit For
    End If
Next
想象一下
Book=“LONDON”

第二个变量(SQLBook)来自SQL select,如果在QTP var BOOK和SQLBook中使用WATCH,视觉上是相等的,但是如果我们通过
LEN()
:BOOK有8个长度(
LEN(BOOK)
),SQLBook有9个长度


您能告诉我出了什么问题吗?

SQLBook中可能有空格或某些不可见字符。要找出这两个变量之间的差异,请执行以下操作:

1) 首先删除类似字符:

Dim diff AS String = Replace(SQLBook, BOOK, "")
2) 然后检查diff中左边字符的ASCII码:

Debug.Print Asc(diff)
编辑根据您的评论,区别在于一个回车字符,用于换行。要摆脱它,请使用:

Replace(SQLBook, vbCr, "")

我试着按照你善意的建议去做,asc()返回了13:diff=Replace(SQLBook,Book,“”)Msgbox asc(diff)@AlexPes是的,正如我所料,这是一个回车字符,用于换行。您可以使用
Trim()
功能将其删除。查看我更新的答案。我做了'SQLBook=“select book from testtable where id=“&SYSTEMID&”Rec.open SQLBook,objConn Set Rec=objConn.Execute(SQLBook)TradeBook=Rec.GetString Trim(TradeBook)”,这对我没有帮助,不幸的是,我更新了我的答案。