我正在将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))
但是它被转换为错误的中文字符串。
答案 0 :(得分:2)
您的字符串是varchar
而不是nvarchar
。转换为正确的数据类型以获取正确的值:
convert(varchar, convert(varbinary, @Param,2))