2013-12-22 132 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