首頁 > 後端開發 > C++ > 如何在不編碼的情況下將字符串轉換為.NET中的字節數組?

如何在不編碼的情況下將字符串轉換為.NET中的字節數組?

Barbara Streisand
發布: 2025-02-01 05:21:09
原創
564 人瀏覽過

How Can I Convert Strings to Byte Arrays in .NET without Encoding?

>直接字符串到字節陣列轉換。 經常,.NET開發人員需要將字符串轉換為字節數組。 使用不同字符編碼處理字符串時,在.NET中編碼的默認UTF-16可能會出現問題。 本文提出了一種獲得字符串的原始字節表示的方法,而無需明確編碼。

字節表示,而無需編碼

> 此技術將字符串的字符數據直接複製到字節數組中,繞過字符編碼:

因為.net字符是16位unicode,所以字節數組的大小為

(字符計數乘以每個字符的2個字節)。
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;
}
登入後複製

>字符串重建來自字節str.Length * sizeof(char)

重新創建原始字符串:

這反映了轉換過程,將字節複製回一個字符數組並創建一個字符串。

>
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);
}
登入後複製
此方法的好處

這種方法提供了幾個關鍵的好處:

編碼不可思議的:無需指定編碼;字節直接代表Unicode字符。

>
  • 強大的錯誤處理: ander 在沒有錯誤的情況下處理無效的字符;字節被視為原始數據。
  • >內部系統效率:是同一系統通信,最大化效率並防止編碼差異的理想之選。

以上是如何在不編碼的情況下將字符串轉換為.NET中的字節數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板