2017-07-07 63 views
0

我想將字符串轉換爲C#中的ByteArray以解密一些數據。將字符串轉換爲C中的ByteArray#

當我從創建的ByteArray中得到de字符串時,它會顯示問號(?)。

示例代碼:

 byte[] strTemp = Encoding.ASCII.GetBytes(strData); 

     MessageBox.Show(strData); 
     MessageBox.Show(Encoding.ASCII.GetString(strTemp)); 

該字符串是 「E < ,, L」 x¡」(帶雙引號),將結果重新轉換成字符串是:???升?X

+0

您需要使用正確的編碼,可能源碼字符串不是ASCII碼,請嘗試Unicode。 –

+5

如果您嘗試在字符串中存儲任意二進制數據,則應該使用base64或hex開頭。我們不知道您的數據來自哪裏,但似乎不太可能遵循該規則... –

+0

簡單地說:要解密,您需要反轉加密步驟。請給他們看。 –

回答

-1

我希望這個幫助你:

至獲取字節數組從字符串

private byte[] StringToByteArray(string str) 
{ 
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 
    return enc.GetBytes(str); 
} 

字節數組得到字符串回:

private string ByteArrayToString(byte[] arr) 
{ 
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 
    return enc.GetString(arr); 
} 
0

對於輸入特定的,這BigEndianUnicode編碼似乎罰款

byte[] strTemp = Encoding.BigEndianUnicode.GetBytes(strData); 

MessageBox.Show(strData); 
MessageBox.Show(Encoding.BigEndianUnicode.GetString(strTemp)); 

作品`

相關問題