将十六进制转换为字符串

问题描述 投票:0回答:1

我正在将VBScript Classic ASP中的字符串转换为十六进制,如下所示:

Function StringToHex(ByRef pstrString)
    Dim llngIndex
    Dim llngMaxIndex
    Dim lstrHex
    llngMaxIndex = Len(pstrString)
    For llngIndex = 1 To llngMaxIndex
        lstrHex = lstrHex & Right("0" & Hex(Asc(Mid(pstrString, llngIndex, 1))), 2)
    Next
    StringToHex = lstrHex
End Function

当我传递一个字符串例如“moe”时,我得到“6D6F65

现在我尝试使用SQL Server中的存储过程将此十六进制转换回字符串,如下所示:

convert(nvarchar, convert(varbinary, @Param,2))

但它正在用中文转换成错误的字符串。

sql sql-server vbscript hex
1个回答
2
投票

你的字符串是varchar而不是nvarchar。转换为正确的值的正确数据类型:

convert(varchar, convert(varbinary, @Param,2))

db<>fiddle

© www.soinside.com 2019 - 2024. All rights reserved.