Rumah pembangunan bahagian belakang C++ Bagaimana untuk melepaskan watak Unicode dalam rentetan ASCII?

Bagaimana untuk melepaskan watak Unicode dalam rentetan ASCII?

Jan 28, 2025 am 05:06 AM

How to Escape Unicode Characters in ASCII Strings?

Dalam rentetan ASCII transit watak Unicode

Dalam beberapa senario pengaturcaraan, ia adalah permintaan yang sama untuk menukar watak Unicode ke dalam rentetan ASCII berputar. Proses ini membolehkan mengekalkan aksara Unicode, jika tidak, ia mungkin hilang atau digantikan oleh aksara lain semasa proses pengekodan.

Sebagai contoh, rentetan yang mengandungi aksara Unicode π (pi) perlu ditukar menjadi format ASCII yang benar (U03A0). Walaupun rentetan dikodkan dalam sistem yang tidak menyokong watak Unicode, penukaran ini dapat memastikan watak itu dikekalkan.

Atas sebab ini, mana -mana watak bukan -CII dalam rentetan perlu digantikan dengan urutan transposisi yang sepadan. Urutan tegar ini bermula dengan cerun belakang (), dan kemudian dinyatakan dengan shpstage kod Unicode. Sebagai contoh, titik kod Unicode π adalah 03A0, jadi urutan tegarnya menjadi U03A0.

Kod C#berikut menunjukkan cara menggunakan pemindahan uxxxx untuk mengekod dan menyahkod aksara bukan -cii:

Dalam kod ini,
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        string unicodeString = "此函数包含一个Unicode字符pi (\u03a0)";

        Console.WriteLine(unicodeString);

        string encoded = EncodeNonAsciiCharacters(unicodeString);
        Console.WriteLine(encoded);

        string decoded = DecodeEncodedNonAsciiCharacters(encoded);
        Console.WriteLine(decoded);
    }

    static string EncodeNonAsciiCharacters(string value)
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in value)
        {
            if (c > 127)
            {
                // 此字符对于ASCII来说太大
                string encodedValue = "\u" + ((int)c).ToString("x4");
                sb.Append(encodedValue);
            }
            else
            {
                sb.Append(c);
            }
        }
        return sb.ToString();
    }

    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();
            });
    }
}
melintasi rentetan input dan mengiktiraf aksara bukan -CII, dan menukarkannya ke urutan peralihannya. Sebaliknya, kaedah menggunakan ungkapan biasa untuk menganalisis rentetan putaran dan menukarnya kembali ke watak Unicode asal.

EncodeNonAsciiCharacters output program ini menunjukkan proses: DecodeEncodedNonAsciiCharacters

Atas ialah kandungan terperinci Bagaimana untuk melepaskan watak Unicode dalam rentetan ASCII?. 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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1545
276
Vektor c Dapatkan elemen pertama Vektor c Dapatkan elemen pertama Jul 25, 2025 am 12:35 AM

Terdapat empat kaedah biasa untuk mendapatkan elemen pertama STD :: Vektor: 1. Gunakan kaedah depan () untuk memastikan bahawa vektor tidak kosong, mempunyai semantik yang jelas dan disyorkan untuk kegunaan harian; 2. Gunakan subskrip [0], dan ia juga perlu dinilai kosong, dengan prestasi yang setanding dengan depan () tetapi semantik yang sedikit lemah; 3. Gunakan *Begin (), yang sesuai untuk pengaturcaraan generik dan algoritma STL; 4. Gunakan pada (0), tanpa penghakiman secara tidak langsung, tetapi prestasi yang rendah, dan membuang pengecualian ketika melintasi sempadan, yang sesuai untuk debugging atau pengendalian pengecualian; Amalan terbaik adalah memanggil kosong () terlebih dahulu untuk memeriksa sama ada ia kosong, dan kemudian gunakan kaedah depan () untuk mendapatkan elemen pertama untuk mengelakkan tingkah laku yang tidak ditentukan.

Contoh fungsi C. Contoh fungsi C. Jul 27, 2025 am 01:21 AM

Fungsi adalah unit asas penganjuran kod dalam C, digunakan untuk merealisasikan penggunaan semula kod dan modularization; 1. Fungsi dibuat melalui pengisytiharan dan definisi, seperti Intadd (Inta, INTB) mengembalikan jumlah kedua -dua nombor; 2. Lulus parameter apabila memanggil fungsi, dan mengembalikan hasil jenis yang sepadan selepas fungsi dilaksanakan; 3. Fungsi tanpa nilai pulangan menggunakan tidak sah sebagai jenis pulangan, seperti VoidGreet (StringName) untuk mengeluarkan maklumat ucapan; 4. Menggunakan fungsi boleh meningkatkan kebolehbacaan kod, mengelakkan pertindihan dan memudahkan penyelenggaraan, yang merupakan konsep asas pengaturcaraan C.

C Standard Library dijelaskan C Standard Library dijelaskan Jul 25, 2025 am 02:11 AM

Perpustakaan standard C membantu pemaju meningkatkan kualiti kod dengan menyediakan alat yang cekap. 1. Bekas STL hendaklah dipilih mengikut tempat kejadian, seperti vektor yang sesuai untuk penyimpanan berterusan, senarai yang sesuai untuk penyisipan dan penghapusan yang kerap, dan unstered_map sesuai untuk carian pantas; 2. Algoritma perpustakaan standard seperti jenis, mencari, dan transformasi dapat meningkatkan kecekapan dan mengurangkan kesilapan; 3. Pointers pintar unik_ptr dan shared_ptr berkesan menguruskan memori untuk mengelakkan kebocoran; 4. Alat lain seperti pilihan, variasi, dan fungsi meningkatkan keselamatan kod dan ekspresi. Menguasai fungsi teras ini dapat mengoptimumkan kecekapan pembangunan dan kualiti kod.

Contoh manipulasi b bit Contoh manipulasi b bit Jul 25, 2025 am 02:33 AM

Operasi bit dapat melaksanakan operasi integer yang mendasari, 1. Periksa sama ada bit I-th ialah 1: Gunakan N & (1

Contoh Ekspresi C Lipat Contoh Ekspresi C Lipat Jul 28, 2025 am 02:37 AM

C FolderExpressions adalah ciri yang diperkenalkan oleh C 17 untuk memudahkan operasi rekursif dalam templat parameter variadik. 1. 2. Logik dan (args && ...) Tentukan sama ada semua parameter adalah benar, dan paket kosong kembali benar; 3. Gunakan (std :: cout

C Padamkan dari vektor semasa melangkah C Padamkan dari vektor semasa melangkah Aug 05, 2025 am 09:16 AM

Jika ia meleleh apabila memadam elemen, anda mesti mengelakkan menggunakan Iterator yang gagal. ① Cara yang betul adalah menggunakannya = vec.erase (IT), dan gunakan iterator yang sah yang dikembalikan dengan memadam untuk terus melintasi; ② Idiom yang disyorkan untuk penghapusan batch: vec.erase (std :: rove_if (vec.begin (), vec.end (), syarat), vec.end ()), yang selamat dan cekap; ③ Anda boleh menggunakan iterator terbalik untuk memadam dari belakang ke depan, logiknya jelas, tetapi anda perlu memberi perhatian kepada arah keadaan. Kesimpulan: Sentiasa mengemas kini iterator dengan nilai pulangan memadam, melarang operasi pada Iterator yang gagal, jika tidak, tingkah laku yang tidak ditentukan akan dihasilkan.

C char array ke contoh rentetan C char array ke contoh rentetan Aug 02, 2025 am 05:52 AM

Jawapannya ialah: Gunakan std :: String constructor untuk menukar array char ke std :: string. Jika array mengandungi pertengahan '\ 0', panjang mesti ditentukan. 1. Untuk rentetan gaya C yang berakhir dengan '\ 0', gunakan std :: stringstr (charArray); untuk melengkapkan penukaran; 2. Jika array char mengandungi pertengahan '\ 0' tetapi perlu menukar aksara n pertama, gunakan std :: stringstr (chararray, panjang); untuk menentukan panjangnya; 3. Apabila memproses pelbagai saiz tetap, pastikan ia berakhir dengan '\ 0' dan kemudian tukarnya; 4. Gunakan Str.Assign (CharArray, CharArray Strl

C std :: is_same Contoh C std :: is_same Contoh Jul 24, 2025 am 03:22 AM

std :: is_same digunakan untuk menentukan sama ada kedua -dua jenis adalah sama pada masa kompilasi dan mengembalikan nilai bool. 1. Dalam penggunaan asas, std :: is_same :: nilai adalah benar apabila t dan anda sama persis, jika tidak, ia adalah palsu. Pengubah yang berbeza seperti const, rujukan, penunjuk, dan lain -lain akan menyebabkan palsu; 2. Anda boleh mengeluarkan pengubahsuaian jenis dengan std :: rove_const, std :: rove_reference dan jenis lain, dan kemudian bandingkan untuk mencapai penghakiman jenis yang lebih fleksibel; 3. Ia sering digunakan dalam metaprogramming templat dalam aplikasi praktikal, seperti kompilasi bersyarat dengan IFConstExpr, dan melakukan logik yang berbeza mengikut jenis yang berbeza; 4.

See all articles