2012-06-07 51 views
1

這似乎是一個愚蠢的問題,你們。我有一個SQL表和一個二進制列。它有一些二進制格式的數據。Sql二進制到C# - 如何獲得SQL二進制相當於C#中的二進制

例如0x9A8B9D9A002020202020202020202020

這相當於英語表示是"test".

是否有可能這個string換算爲相應binary形式c#

string s = "test"; // C# code to convert s to it's equivalent SQL binary form. 
+0

取決於它如何被存儲。什麼過程存儲它? –

+3

你能解釋一下你是如何從''test''獲得'0x9A8B9D9A00202020202020202020202020'嗎?如果是這樣,我們可以解釋如何去其他方式。這不是我熟悉的任何轉換機制的直接翻譯。是否有可能以某種方式加密或散列? –

+0

我猜是使用某種算法。說9A→t,8B→e,9D→s。所以這裏形成的詞是測試。這可以通過查找機制完成。我只是想看看這是否可以通過任何內置機制來實現。 –

回答

2
public static byte[] ConvertToBinary(string str) 
{ 
    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 
    return encoding.GetBytes(str); 
} 

Convert.ToByte(string); 
+0

這將是不正確的0x9A8B9D9A是不是ASCII文本的「測試」 – shf301

+0

不,它沒有給我輸出我正在尋找:( –

+0

@VijayBalkawade - 它會工作,如果你改變到'System.Text.Encoding.Default'? – shf301

0

這真的取決於它當您最初從字符串轉換爲二進制文件使用的編碼:

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 
+0

在這種情況下讀者是什麼? –

+0

用你的sql數據替換讀者[1] – JSJ