在C#中将字符串转换为字节数组:如何正确操作?
大家好。我是一名初学C#的开发者,在处理网络请求和文件时遇到了问题。我需要将普通字符串(string)转换为字节数组(byte[]),以便通过socket发送或写入二进制文件。
问题在于我不明白哪种方法才是正确的。我尝试过使用`BitConverter.GetBytes()`,但它生成的数组中每个字符占用4个字节,这显然不是我期望的结果。我还在网上看到有人提到`Encoding.ASCII.GetBytes()`和`Encoding.UTF8.GetBytes()`。它们有什么区别?如果我直接写`(byte[])myString`,这根本编译不了。
以下是我的代码示例,它没有按我期望的方式工作:
```csharp
string message = "Привет, мир!";
byte[] bytes = BitConverter.GetBytes(message); // 错误或结果不对
```
请告诉我如何正确地将字符串转换为字节数组,以便以后能恢复原字符串?是否需要考虑编码?希望能得到详细解释。