C#Encoding.Default.GetBytes()方法和整数表示
我看到了这个代码示例:C#Encoding.Default.GetBytes()方法和整数表示,c#,encoding,C#,Encoding,我看到了这个代码示例: using (FileStream fStream = File.Open(@"C:\myMessage.dat", FileMode.Create)) { string msg = "Helloo"; byte[] msgAsByteArray = Encoding.Default.GetBytes(msg); foreach (var a in msgAsByteArray) { Console.WriteLine($"a: {a}"); } // Writ
using (FileStream fStream = File.Open(@"C:\myMessage.dat", FileMode.Create))
{
string msg = "Helloo";
byte[] msgAsByteArray = Encoding.Default.GetBytes(msg);
foreach (var a in msgAsByteArray)
{
Console.WriteLine($"a: {a}");
}
// Write byte[] to file.
fStream.Write(msgAsByteArray, 0, msgAsByteArray.Length);
// Reset internal position of stream.
fStream.Position = 0;
// Read the types from file and display to console.
Console.Write("Your message as an array of bytes: ");
byte[] bytesFromFile = new byte[msgAsByteArray.Length];
for (int i = 0; i < msgAsByteArray.Length; i++)
{
bytesFromFile[i] = (byte)fStream.ReadByte();
Console.Write(bytesFromFile[i]);
}
// Display decoded messages.
Console.Write("\nDecoded Message: ");
Console.WriteLine(Encoding.Default.GetString(bytesFromFile));
一,。
我认为字节[]是由许多字节组成的。
但每个字节都用整数表示。
该数字必须是相应的ASCII字符。
在C#中,字节数组表示以ASCII表示的数据
二,。
文件myMessage.dat是否由仅由0和1组成的二进制数据组成?
但是当我用文本编辑器打开myMessage.dat时,它显示的是Helloo文本字符串。这是什么原因
编码将“Halloo”显式转换为字节。Default.GetBytes()
——这有点像将其转换为ascii值,但注意系统上的默认编码
byte[]myBytes=new[]{0,7,12,3,9,30}
放入一个文件,并用文本编辑打开该文件,你将得到不可读取的文本,因为“普通文本”大约从32开始,然后是制表符、铃铛、换行符和其他特殊的不可打印字符。见f.ea: 72
a: 101
a: 108
a: 108
a: 111
a: 111