如果我使用以下方法将Javascript中的Bytearray转换为字符串:
convertByteArrayToString: function(byteArray)
{
var s = '';
for(var i = 0;i < byteArray.length;i++)
{
s += String.fromCharCode(byteArray[i])
}
return s;
},
然后如何在C#中将此字符串转换回字节数组?
我已经尝试了以下所有三个:
System.Text.UnicodeEncoding encoding = new System.Text.UnicodeEncoding().GetBytes(myString);
System.Text.UTF32Encoding encoding = new System.Text.UTF32Encoding().GetBytes(myString);
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding().GetBytes(myString);
最接近的是第一个,但是它返回的Byte数组是原始数组长度的两倍,并且数组中的每个其他元素均为0,有时值不正确或为2。
据我所知,String.fromCharCode使用Unicode,因此如何使它与C#互操作?
这真让我发疯!
编辑:
这是一个例子
原始字节数组:
[139、104、166、35、8、42、216、160、235、153、23、143、105、3、24、255]
我的函数将其转换为:
“ h¦#*Øëiÿ”
在C#中,尝试将此String解码为字节数组会产生以下结果:
使用System.Text.UnicodeEncoding可以:
[142,0,139,0,104,0,166,0,35,0,8,0,42,0,216,0,32,0,235,0,153,0,23,0,143,0,105,0,30,24,0,255,0]
c#参考方案
crypto-js具有Crypto.charenc.UTF8.stringToBytes()
和Crypto.charenc.UTF8.bytesToString()
,它们与C#中的UTF-8编码完美配合。
编辑
经过讨论后,OP希望将byte[]
从JS传输到C#中-最好通过base64
编码完成(我推荐相同的JS工具包)
我熟悉通常的持久性XSS,在这种情况下,来自用户输入的内容应在通往模板(html实体)的途中进行转义。最近,我遇到了一个非持久性的问题,用户可以在URL上的脚本中发送该URL,而该URL则显示在页面的某处。就我而言,这是一个链接标记。因此,我有以下使用当前URL的链接标记。<link rel="next" href="{c…
将字符串值添加到php / javascript - javascript您好,我有一些代码需要在其中插入一些字符串值,但是每次我输入字母时,脚本都无法正常工作。<script type="text/javascript"> "use strict"; var values = [1,2,3,4,5,6,7,8,9]; /*add string values here*/ var…
提交初始化后删除某些帖子数据 - javascript在初始化提交之后但在将数据发送到处理页面之前,是否可以过滤$ _POST表单数据?我想象过程的方式:提交->收集$ _POST数据->发送数据我想做的事:提交->收集$ _POST数据->删除某些元素->发送数据这样就不必更改处理页面以过滤掉不希望接收的元素了吗? javascript大神给出的解决方案 当然可以,您可以在JS …
写一行到javascript文件 - javascript我正在使用数组来显示网站中的一些图像:var paintingImages; paintingImages = [ { url: 'images/objects/ron.jpg', alt: 'ron' } ]; 该js代码写在paintings.js中,我的主要js代码写在main.js文件中我已经为艺术家制作了这个…
在JavaScript中运行方法C# - javascript打扰一下,我有这种C#asp方法。受保护的无效btnSave_Click(对象发送者,EventArgs e)有谁知道我该如何发送脚本给您?可以办到?。 javascript大神给出的解决方案 是的,那可以做到。为此,您在.aspx.cs页中创建了函数,然后单击保存按钮上的代码将其复制到函数中,然后执行以下步骤。//Call cs method from J…