在C#中處理字符串時,必須考慮字符編碼,尤其是在將字符串轉換為字節數組時。編碼允許字符串以不同的字符集表示,例如Unicode UTF-8或ASCII。
但是,如果您的目的僅僅是獲取字符串的底層字節而不進行解釋,則有一個簡單的解決方案:
<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; } // 仅限于在同一系统上GetByte方法的输出上使用,不要在任意字节上使用 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>
這種方法將字符串視為字節序列,無需任何編碼考慮。它允許您從其字節表示中檢索和重建字符串,而無需依賴特定編碼。
需要注意的是,此方法僅應用於不需要字節解釋的場景。嘗試將這些字節解釋為不同的編碼可能會導致錯誤或數據損壞。
以上是如何在不編碼的情況下獲得C#中字符串的原始字節表示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!