C#/TypeScript字节数组在发送到客户端时被编码
我试图通过C#将一个从数据库中提取的字节数组发送到我的前端客户端,该客户端是用JavaScript/TypeScript编写的,但似乎字节数组是在从后端发送到前端之间的某个地方编码的 数据库中的数据是值为0x00000001的varbinary。我设置了一个断点,在这里我的C#代码返回检索到的值,我得到一个值为:[0,0,0,1]的字节数组。但是,当它到达客户端时,值是:“AAAAAQ==” 我尝试使用以下代码对其进行解码:C#/TypeScript字节数组在发送到客户端时被编码,c#,arrays,typescript,C#,Arrays,Typescript,我试图通过C#将一个从数据库中提取的字节数组发送到我的前端客户端,该客户端是用JavaScript/TypeScript编写的,但似乎字节数组是在从后端发送到前端之间的某个地方编码的 数据库中的数据是值为0x00000001的varbinary。我设置了一个断点,在这里我的C#代码返回检索到的值,我得到一个值为:[0,0,0,1]的字节数组。但是,当它到达客户端时,值是:“AAAAAQ==” 我尝试使用以下代码对其进行解码: let encodedString = encodeURI(encod
let encodedString = encodeURI(encodeURIComponent(flag));
let arr = [];
for (let i = 0; i < encodedString.length; i++) {
arr.push(encodedString.charCodeAt(i));
}
let encodedString=encodeURI(encodeURIComponent(flag));
设arr=[];
for(设i=0;i
但该代码返回这个值数组:[65,65,65,65,81,37,50,53,51,68,37,50,53,51,68]
是什么导致数据被编码,以及如何在将数据发送到客户机时用TypeScript对其进行解码或防止对其进行编码 “aaaaa q==”是0x00000001的Base64编码版本。因此,您需要使用atob
将其转换回来,然后将每个字符代码推送到一个数组中
let text='AAAAAQ==';
让bin=atob(文本);
让字节=[];
for(设i=0;i console.log(字节)代码>“AAAA Q==”是的base64编码版本0x00000001@phuzi如果我尝试使用atob()将其解码为base64字符串,它只返回一个框SYMBOL您希望非文本值显示为什么?我希望它返回我的原始字节数组值0001、1或类似的值,以便我可以使用它进行二进制计算。工作得非常好!非常感谢你!这是一个很好的答案。如果您有非拉丁字符(例如中文),atob
可能无法很好地处理它。看见