在 C# 中获取字符串的字节表示(无需编码)
本文介绍如何在不指定编码的情况下将 C# 字符串转换为字节数组。此方法避免了字符编码相关的复杂性。
编码 主要在您希望将字节数组解释为字符串时发挥作用。不同的编码将相同的字节解释为不同的字符。通过指定编码,您可以指示系统根据指定的编码解码字节,从而产生特定的字符序列。
但是,如果您只想逐字存储字符串的字节,而不依赖于字符解释,则可以简单地将字符串字符数组的位复制到字节数组中。这可以通过以下代码实现:
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; }
要将字节数组转换回字符串,请使用:
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); }
此方法确保精确保留原始字符串的字节,而无需依赖编码。只要字节的目标上下文不需要字符解释,此方法就提供了一种可靠且便捷的替代编码方法。
以上是如何在不编码的情况下在C#中获取字符串的字节表示?的详细内容。更多信息请关注PHP中文网其他相关文章!