Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menukar rentetan ke array byte dalam .net tanpa pengekodan?

Bagaimanakah saya boleh menukar rentetan ke array byte dalam .net tanpa pengekodan?

Barbara Streisand
Lepaskan: 2025-02-01 05:21:09
asal
524 orang telah melayarinya

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

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>
Salin selepas log masuk
kerana .net aksara adalah Unicode 16-bit, saiz array byte adalah

(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>
Salin selepas log masuk
ini mencerminkan proses penukaran, menyalin bait kembali ke array karakter dan membuat rentetan.

Manfaat kaedah ini

Pendekatan ini menawarkan beberapa manfaat utama:

  • pengekodan agnostik: tidak perlu menentukan pengekodan; bait secara langsung mewakili aksara unicode.
  • pengendalian ralat yang teguh: mengendalikan aksara tidak sah tanpa kesilapan; bait dianggap sebagai data mentah.
  • kecekapan intra-sistem: sesuai untuk komunikasi sistem yang sama, memaksimumkan kecekapan dan mencegah percanggahan pengekodan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan