【问题标题】:How to get character code at < 126如何在 < 126 处获取字符代码
【发布时间】:2012-11-28 08:25:38
【问题描述】:

我只是在我的服务器端应用程序中创建一个 256 字节的数组,然后将其发送到客户端。

C#:

byte[] arr = new byte[256];
for (int i = 0; i < 256;i++ )
{
    arr[i] = (byte)i;
}

然后我想使用 JavaScript 在客户端获取所有字符代码(确切地说是字符的字节代码)。

JavaScript:

for(var i = 0;i<data.length;i++) {
    console.log(data.charCodeAt(i));
}

126charCodeAt(...) 之后的字符返回65536

正是我想知道如何在126 之后获得此字符代码?

【问题讨论】:

  • 您确定可以通过 ajax 发送原始二进制数据吗?
  • 完全没有,但在某些情况下我需要这样做。您的意思是这是浏览器或 ajax 请求的问题?
  • 这是一个问题,因为原始二进制数据可能会创建损坏的 json/xml/csv 数据。如果我愿意,我可能会使用 base64。
  • 服务器端使用base64编码,客户端解码。
  • 不,这是大多数人类可读数据容器的限制。由于 csv 使用逗号,原始数据可能包含逗号并在当前字段中实际剩余数据时导致新字段开始。此外,由于例如 UTF-8 没有使用每个字符的固定大小来描述,我想发送的数据的长度可能与客户端上接收的数据不同。只是猜测,不是专家。

标签: c# javascript bytearray


【解决方案1】:

在这篇博文中有一些关于如何使用 charCodeAt 解析二进制数据的非常好的技巧: http://fhtr.blogspot.com/2009/12/3d-models-and-parsing-binary-data-with.html

如果您想在 JavaScript 中轻松读取二进制数据,也可以使用 jDataView: http://blog.vjeux.com/2011/javascript/jdataview-read-binary-file.html

【讨论】:

  • 这一切都很好,但我的问题是关于通过 HTTP 传输这个 bytes 而不是如何使用它或使用它们。我也与TypedArray 合作过,但是当您拥有原始字节时它可以工作。我认为使用WebSocket 通过HTTP 传输字节是可行的。再次感谢朋友,+1 :)
  • @AfshinMehrabani 您必须将字符集设置为 x-user-defined,如第一个链接中所述。
  • 我没看到,抱歉。好的,让我检查一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2021-02-17
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
相关资源
最近更新 更多