penukaran array string-to-byte langsung dalam .net
Selalunya, .net pemaju perlu menukar rentetan ke dalam tatasusunan byte. Pengekodan UTF-16 lalai dalam .NET boleh menjadi masalah apabila berurusan dengan rentetan menggunakan pengekodan aksara yang berbeza. Artikel ini membentangkan kaedah untuk mendapatkan perwakilan byte mentah rentetan tanpa pengekodan eksplisit.
perwakilan byte tanpa pengekodan
Teknik ini secara langsung menyalin data aksara rentetan ke dalam array byte, memintas pengekodan aksara:
<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>
(kiraan aksara didarab dengan 2 bait setiap aksara). str.Length * sizeof(char)
rekonstruksi rentetan dari bait
untuk mencipta rentetan asal:
<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>
Manfaat kaedah ini
Pendekatan ini menawarkan beberapa manfaat utama:
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar rentetan ke array byte dalam .net tanpa pengekodan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!