Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将UTF-8中的字符串编码为预先存在的字节数组?_C#_Arrays_String_Encoding_Utf 8 - Fatal编程技术网

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

C# 如何将UTF-8中的字符串编码为预先存在的字节数组?,c#,arrays,string,encoding,utf-8,C#,Arrays,String,Encoding,Utf 8,我有一段简单的代码,通过将C#字符串编码为UTF-8,然后从中创建一个字节数组来转换它。但我想知道如何使用我已经在起始索引中创建的字节数组编码到UTF-8 这就是我目前编码和获取结果字节数组的方式: byte[] result = Encoding.UTF8.GetBytes(myString); 但我有一个预先制作好的字节数组,如果有意义的话,我更愿意在特定的索引处写入它。是否有任何内置方法可以执行此操作,如果没有,我将如何执行此操作?首先需要将字节转换为Base64String,然后将其转

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

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

byte[] result = Encoding.UTF8.GetBytes(myString);

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

首先需要将字节转换为Base64String,然后将其转换为字节。他喜欢这样:

byte[] random = new byte[] { 0x00C9, 0x00C9, 0x00C9 };

byte[] encodedBytes = Encoding.UTF8.GetBytes(Convert.ToBase64String(random));
具有另一个写入现有阵列的重载:

  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); 
不要忘记处理结果以了解数组中实际代表字符串的字节数(
actualByteCount


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

使用另一个GetBytes重载…编码后您需要字节还是需要字符串?@mikez-ah-dam我不知道存在重载。我的错。谢谢你:)