0
獲取UTF-16字節我要填充與來自UTF-16編碼的字符串的字節的緩衝器的一部分而不分配一箇中間字節陣列(即,沒有調用Encoding.Unicode.GetBytes(str)
)而不調用Encoding.Unicode.GetBytes
假設那我知道一個字符串只包含ASCII
個字符,下面的代碼是否安全?
for (var i = 0; i < str.Length; i++)
{
var code = char.ConvertToUtf32(str, i);
var high = (byte) (code & 0xFF);
var low = (byte) ((code >> 8) & 0xFF);
//k is the offset where we insert bytes of the UTF-16 encoded string
buffer[i*2 + k] = high;
buffer[i*2 + k + 1] = low;
}