如何将字符串编码为 UTF-8 到预先存在的字节数组?

WDU*_*DUK 2 c# arrays string encoding utf-8

我有一段简单的代码,可以将 C# 字符串编码为 UTF-8,然后从中创建一个字节数组。但我想知道如何使用我已经在起始索引处创建的字节数组编码为 UTF-8?

这就是我当前编码并获取结果字节数组的方式:

byte[] result = Encoding.UTF8.GetBytes(myString);
Run Code Online (Sandbox Code Playgroud)

但我有一个预先制作的字节数组,如果有意义的话,我更愿意在特定索引处写入。是否有任何内置方法可以做到这一点,如果没有,我将如何去做?

Ale*_*kov 5

GetBytes还有另一个写入现有数组的重载:

  byte[] bytes = new byte[1000]; // sample, make sure it has enough space
  var specificIndex = 0;
  var actualByteCount = Encoding.UTF8.GetBytes(
     myString, 0, myString.Length, bytes, specificIndex); 
Run Code Online (Sandbox Code Playgroud)

不要忘记处理结果以了解数组中实际表示字符串 ( actualByteCount)的字节数

请注意,您可能需要使用它GetByteCount来获取正确的数组大小或调整要转换的字符数以适合缓冲区。