我有一段简单的代码,通过将C#字符串编码为UTF-8然后从中创建字节数组来转换它。但我想知道如何使用我已经在起始索引处创建的字节数组编码为UTF-8?
所以这就是我目前编码和得到结果字节数组的方式:
byte[] result = Encoding.UTF8.GetBytes(myString);
但我有一个premade的字节数组,如果有意义的话,我更愿意写一个特定的索引。有没有内置的方法来做到这一点,如果不是我会怎么做呢?
答案 0 :(得分:1)
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);
不要忘记处理结果以了解数组中有多少字节实际代表字符串(actualByteCount
)
请注意,您可能需要使用GetByteCount
来获取正确的数组大小或调整要转换为适合缓冲区的字符数。
答案 1 :(得分:-1)
首先,您需要将字节转换为Base64String,然后将其转换为字节。喜欢这个:
byte[] random = new byte[] { 0x00C9, 0x00C9, 0x00C9 };
byte[] encodedBytes = Encoding.UTF8.GetBytes(Convert.ToBase64String(random));