Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara mengekod dan menyahkod aksara unicode di C#?

Bagaimana cara mengekod dan menyahkod aksara unicode di C#?

DDD
DDDasal
2025-01-28 04:51:13570semak imbas

How to Encode and Decode Unicode Characters in C#?

Pengekodan dan penyahkodan watak Unicode dalam C#

dalam kelas C#,

digunakan untuk pengekodan aksara dan penyahkodan. Walau bagaimanapun, ia mempunyai batasan apabila memproses watak Unicode di luar julat ASCII. Untuk mengekalkan aksara bukan -CII (seperti huruf Yunani PI (π)), kita perlu menggunakan teknologi tertentu.

Encoding pengekodan aksara unicode

Untuk mengekod watak Unicode ke dalam rentetan ASCII kebenaran, kami menggunakan kaedah berikut:

Kaedah ini menggantikan aksara bukan -cii ke bentuk peralihan ASCII yang sepadan, seperti "π" hingga "u03a0".

<code class="language-csharp">static string EncodeNonAsciiCharacters(string value) {
    StringBuilder sb = new StringBuilder();
    foreach (char c in value) {
        if (c > 127) {
            string encodedValue = "\u" + ((int)c).ToString("x4");
            sb.Append(encodedValue);
        } else {
            sb.Append(c);
        }
    }
    return sb.ToString();
}</code>
pemindahan ascii penyahkodan aksara

Untuk menyahkodkan tali ASCII yang benar kembali ke Unicode, kami menggunakan ungkapan biasa:

Ekspresi biasa ini menggantikan semua aksara Unicode Re -righteous (UXXXX) kepada watak Unicode yang sepadan, sebagai contoh, "U03A0" menjadi "π".

Penggunaan contoh
<code class="language-csharp">static string DecodeEncodedNonAsciiCharacters(string value) {
    return Regex.Replace(value,
        @"\u(?<value>[a-zA-Z0-9]{4})",
        m => {
            return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
        });
}</code>

Contoh berikut menggambarkan kod dan proses penyahkodan:

Contoh ini mengekalkan pi aksara bukan -cii semasa keseluruhan kod dan proses penyahkodan.

Atas ialah kandungan terperinci Bagaimana cara mengekod dan menyahkod aksara unicode di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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