将十六进制转换为字符串

Convert hex into a string

我正在将 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 服务器中的存储过程将此十六进制转换回字符串,如下所示:

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

但它被转换成错误的中文字符串。

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

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

db<>fiddle