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

Bagaimana cara mengekod dan menyahkod aksara unicode di C#?

DDD
Lepaskan: 2025-01-28 04:51:13
asal
546 orang telah melayarinya

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".

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();
}
Salin selepas log masuk
<义> 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
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();
        });
}
Salin selepas log masuk

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 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan