簡體   English   中英

從字符串讀取二進制字節

[英]Reading binary bytes from string

我有一個帶有二進制數據的文本內嵌的csv文件(即Text,0xFF00)。 我需要讀入兩個值並將它們保存到數據庫中。 目前,我正在使用StreamReader讀取該行,並用逗號對其進行分割。 我遇到的問題是我需要將二進制數據轉換為等效的byte [](即0xFF00轉到{255,0})。 任何使用編碼的轉換都會更改二進制文件。

byte[] data= System.Text.Encoding.ASCII.GetBytes(SplitString[1]);

如果整個文件都是二進制文件,則可以使用File.ReadAllBytes(file)在內存中執行此操作,而無需將二進制文件部分寫入臨時文件中?

我有一個帶有文本內聯二進制數據的csv文件

那是一個糟糕的開始。 您有機會更改它嗎?

基本上,您不應該首先嘗試將二進制數據讀取為文本。 這樣做幾乎肯定會丟失數據。 (您可以使用ISO-Latin-1,但這是一個討厭的問題的解決方法。)

相反,您可能希望將所有數據讀取為二進制數據,並使用Encoding.GetString僅將其相關位轉換為文本。

您如何知道文件的哪些位將是文件中的位? (即哪些位是二進制的,哪些位是文本的)

我遇到的問題是我需要將二進制數據轉換為等效的byte [](即0xFF00轉到{255,0})。

僅檢查一下,您的文件確實包含二進制數據,而不是二進制數據的十六進制表示,對嗎? 如果實際上是所有文本數據,但其中一些是使用十六進制編碼為文本的二進制數據,那將使工作變得更加輕松。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM