Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencapai Output UTF-8 yang Betul dengan std::cout pada Windows?

Bagaimana untuk Mencapai Output UTF-8 yang Betul dengan std::cout pada Windows?

Barbara Streisand
Lepaskan: 2024-10-29 16:05:17
asal
1108 orang telah melayarinya

How to Achieve Correct UTF-8 Output with std::cout on Windows?

Menyelesaikan masalah Output UTF-8 pada Windows Menggunakan std::cout

Apabila bekerja dengan rentetan berkod UTF-8 dalam aplikasi C merentas platform, isu boleh timbul apabila cuba mencetaknya ke std::cout pada sistem Windows. Secara lalai, std::cout menjangkakan rentetan 8-bit berada dalam Latin-1 atau format bukan Unicode yang serupa, yang membawa kepada keluaran bercelaru untuk rentetan UTF-8.

Untuk menangani masalah ini pada Windows, beberapa pendekatan boleh diambil:

  1. Menetapkan Halaman Kod Konsol kepada UTF-8:

    SetConsoleOutputCP(CP_UTF8);
    Fungsi ini memberitahu Konsol Windows untuk mentafsir strim bait yang diterimanya sebagai UTF-8.

  2. Menyelesaikan Isu Penimbalan Strim dalam Visual Studio STL:

    setvbuf(stdout , nullptr, _IOFBF, 1000);
    Penyelesaian ini membolehkan penimbalan untuk strim, menghalang kod STL daripada menghantar urutan UTF-8 bait sebagai bait individu ke konsol.

  3. Memastikan Fon TrueType Digunakan:

    Fon TrueType menyokong aksara Unicode, manakala fon raster mengabaikan halaman kod konsol. Windows 10 menggunakan Consolas sebagai fon lalai, tetapi dalam Windows 7, pengguna mungkin perlu menukar secara manual kepada fon TrueType untuk memaparkan aksara Unicode bukan ASCII dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Output UTF-8 yang Betul dengan std::cout pada Windows?. 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