我有一个字节数组,从映像文件中读取,我试图从C#跨套接字发送到运行collectionFS(v0.3.7)的Meteor服务器。从字节数组创建正确转义的字符串
我试图将其转换为一个字符串,结果我就从在JavaScript调用FileReader.readAsBinaryString()
得到匹配,例如:
?PNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0003?\u0000\u0000\u0002?
在我的C#代码,我一直在使用System.Text.Encoding.UTF8.GetString()
试过了,这给了我像这样:
�PNG\r\n\n\0\0\0\rIHDR\0\0�\0\0
这在传输上失败,大概是因为'\ 0'被视为像字符串的结尾。
任何人都可以更好地解释这里发生了什么?在C#中使用像readAsBinaryString()
这样的unicode转义序列来格式化字节是否有一个好方法?
编辑:这个数据的最终目的地是MongoDB(流星)中的BSON二进制条目,稍后将被提取(作为Blob)并通过普通的Meteor Web浏览器客户端进行查看。
只会编码的每一个字节为十六进制的工作(要容易得多,大量重复的)? –
我可以尝试,虽然我怀疑它需要unicode出于某种原因转义。我会更新这个问题,但是这个数据的最终目的地是MongoDB中的BSON二进制条目。 – WildCrustacean