簡體   English   中英

將SQL Server varBinary數據轉換為字符串C#

[英]Converting SQL Server varBinary data into string C#

我需要幫助找出如何將從設置為varBinary(max)SQL Server表列中的數據轉換為字符串,以便在標簽中顯示它。

這是在C#中我正在使用DataReader

我可以使用以下方式提取數據:

var BinaryString = reader[1];

我知道這個專欄保存以前轉換為二進制的文本。

這實際上取決於最初從字符串轉換為二進制時使用的編碼:

 byte[] binaryString = (byte[])reader[1];

 // if the original encoding was ASCII
 string x = Encoding.ASCII.GetString(binaryString);

 // if the original encoding was UTF-8
 string y = Encoding.UTF8.GetString(binaryString);

 // if the original encoding was UTF-16
 string z = Encoding.Unicode.GetString(binaryString);

 // etc

二進制數據必須是編碼文本 - 您需要知道使用了哪種編碼才能准確地將其轉換回文本。 例如,您可以使用:

byte[] binaryData = reader[1];
string text = Encoding.UTF8.GetString(binaryData);

要么

byte[] binaryData = reader[1];
string text = Encoding.Unicode.GetString(binaryData);

或其他各種選擇......但你需要知道正確的編碼 否則就像嘗試將JPEG文件加載到只讀取PNG的圖像查看器中......但更糟糕的是,因為如果你得到錯誤的編碼,它可能看起來適用於某些字符串。

接下來要解決的是為什么它首先存儲為二進制文件...如果它是文本,為什么不以這種方式存儲它。

您需要知道用於創建二進制文件的編碼。 然后你可以使用

System.Text.Encoding.UTF8.GetString(reader[1]);

並根據所使用的編碼更改UTF8。

暫無
暫無

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

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