Asp classic 在经典ASP中编码ASCII字符0终止查询字符串

Asp classic 在经典ASP中编码ASCII字符0终止查询字符串,asp-classic,ascii,url-encoding,request.querystring,Asp Classic,Ascii,Url Encoding,Request.querystring,我收到了包含ASCII字符0(http://localhost/Test_Authentication.asp?token=%13%23%02%00%01%01%00%01%01%05%02%02%03%00%02%02%0A%0A%0A%0A%0A%0A048)并且当我检索该值时,字符串将终止于该位置(%00)。我应该如何解决这个问题 下面是我的代码 Response.CharSet = "utf-8"; Session.CodePage=65001; var strToken = (Req

我收到了包含ASCII字符0(
http://localhost/Test_Authentication.asp?token=%13%23%02%00%01%01%00%01%01%05%02%02%03%00%02%02%0A%0A%0A%0A%0A%0A048
)并且当我检索该值时,字符串将终止于该位置(
%00
)。我应该如何解决这个问题

下面是我的代码

Response.CharSet = "utf-8";
Session.CodePage=65001;

var strToken = (Request.QueryString("token").Count > 0)?Request.QueryString("token")(1):"";

%00是表示空字符的ascii码。我怀疑这就是字符串在这里终止的原因

我建议使用一种不同的格式或方法来创建哈希标记,也许可以将其创建为十六进制值,例如

B73A21FBCE3921E5DD0C935AB4D710DD

MD5散列通常表示为32位十六进制数。这对于在querystring中传递更为友好。

可能的原因是令牌已经是某种形式的散列。MD5没有定义任何编码,它的结果只是一个字节流。真正的问题是,数据需要编码为Base64或您的示例中的十六进制。谢谢@AnthonyWJones。修改答案以反映您的贡献