>直接字符串到字节阵列转换。 经常,.NET开发人员需要将字符串转换为字节数组。 使用不同字符编码处理字符串时,在.NET中编码的默认UTF-16可能会出现问题。 本文提出了一种获得字符串的原始字节表示的方法,而无需明确编码。
字节表示,而无需编码
> 此技术将字符串的字符数据直接复制到字节数组中,绕过字符编码:
因为.net字符是16位unicode,所以字节数组的大小为
(字符计数乘以每个字符的2个字节)。<code class="language-csharp">static byte[] GetBytes(string str) { byte[] bytes = new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); return bytes; }</code>
>字符串重建来自字节str.Length * sizeof(char)
重新创建原始字符串:
这反映了转换过程,将字节复制回一个字符数组并创建一个字符串。>
<code class="language-csharp">static string GetString(byte[] bytes) { char[] chars = new char[bytes.Length / sizeof(char)]; System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); return new string(chars); }</code>此方法的好处
这种方法提供了几个关键的好处:
编码不可思议的:
以上是如何在不编码的情况下将字符串转换为.NET中的字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!