VB字符串转16进制转换不全

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:26:06
Public Function StrToHex(ByVal strS As String) As String
Dim abytS() As Byte
Dim bytTemp As Byte
Dim strTemp As String
Dim lLocation As Long
abytS = StrConv(strS, vbFromUnicode)
For lLocation = 0 To UBound(abytS)
bytTemp = abytS(lLocation)
strTemp = Hex(bytTemp)
strTemp = Right("00" & strTemp, 2)
StrToHex = StrToHex & strTemp
Next lLocation
End Function
我想把一个在UE中显示为CC 30 00 00的字符串转换为“CC300000”这个字符串,但是转出来的是“3F0000”,这段代码有问题吗?求教,急!
因为是ansi

直接去掉空格不行吗?
用 Replace("CC 30 00 00", " ", "")。

需要全部代码才知道你的strS是怎么得到的,为什么要用StrConv转换?

试试在StrConv前加入Replace去掉空格先吧。
Public Function StrToHex(ByVal strS As String) As String
Dim abytS() As Byte
Dim bytTemp As Byte
Dim strTemp As String
Dim lLocation As Long
strS = Replace(strS, " ", "")
abytS = StrConv(strS, vbFromUnicode)

For lLocation = 0 To UBound(abytS)
bytTemp = abytS(lLocation)
strTemp = Hex(bytTemp)
strTemp = Right("00" & strTemp, 2)
StrToHex = StrToHex & strTemp
Next lLocation
End Function