2013-12-22 134 views
0

我應該使用哪種編碼將bbb寫入文件中,因爲它們的確切字節數,所以如果文件在十六進制編輯器中打開,其內容將是「99 59」?從字符串發送字符到字節數組C#

創建不正確的結果下面的方法,所列出的:

Byte[] bbb = { 0x99, 0x59 }; 
string o = System.Text.Encoding.UTF32.GetString(bbb); 

UTF32(上文)中寫入 'EF BF BD',UTF7寫入 'C2 99 59',UTF8寫入 'EF BF BD 59',Unicode的寫入'E5 A6 99',ASCII寫入'3F 59'

什麼編碼會產生未更改的8位字節?

+0

爲什麼選擇C++標記?它的C++/CLI還是隻有C#? – Manu343726

+1

請勿使用任何編碼。如果你不想讓它們改變,只需將這些字節直接寫入文件即可。 – shf301

+0

謝謝你的回答,爲了遵循你的「艱難的生活建議」,我不得不重新編寫一些主要功能,但新方法更加清潔,並且不易變通。 – user3127017

回答

2

如果你想字節寫入未編碼到文件/流,只需將其寫入文件/流。

File.WriteAllBytes(@"d:\temp\test.bin", bbb); 

stream.Write(bbb, 0, bbb.Length); 

不編碼它們。

+0

感謝Lasse,我也使用了你的建議,並且已經做出了一些直接處理字節的更簡潔的函數。 feedBytes(byteToAddTo,byteArray); – user3127017