我有一個字節數組,從映像文件中讀取,我試圖從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