Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Keluarkan Aksara Unikod ke Konsol Windows Menggunakan C?

Bagaimanakah Saya Boleh Keluarkan Aksara Unikod ke Konsol Windows Menggunakan C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-30 16:15:12221semak imbas

How Can I Output Unicode Characters to the Windows Console Using C  ?

Mengoutput Unicode ke Console dalam Windows menggunakan C

Apabila cuba memaparkan aksara Unicode dalam konsol Windows menggunakan cout, pengguna mungkin menghadapi output yang herot disebabkan Unicode tidak disokong oleh lalai dalam cmd. Untuk menyelesaikan isu ini, pelbagai kaedah boleh digunakan untuk mendayakan sokongan Unicode dalam persekitaran konsol.

Satu pendekatan ialah menggunakan aliran keluaran aksara lebar, std::wcout. Dengan menambahkan L sebelum rentetan Unicode, ia boleh dihantar ke std::wcout untuk paparan yang betul.

#include <iostream>

int main() {
    std::wcout << L"Hello World!" << std::endl;
    return 0;
}

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa semasa std::wcout menangani masalah sokongan Unicode, ia tidak memastikan pemaparan yang betul dalam konsol. Untuk mendayakan output Unicode sepenuhnya, langkah tambahan diperlukan.

Pertama sekali, konsol mesti dikonfigurasikan untuk mengendalikan Unicode. Ini boleh dicapai dengan memulakan cmd dengan argumen /u, atau dengan memanggil chcp 65001 untuk menukar format output konsol kepada UTF-16. Akhir sekali, fon Unicode, seperti Lucida Console Unicode, boleh ditetapkan dalam konsol untuk pemaparan optimum.

Sebagai alternatif, _setmode(_fileno(stdout), _O_U16TEXT); fungsi boleh digunakan untuk membolehkan sokongan Unicode, seperti yang didokumenkan dalam catatan blog ini. Pendekatan ini memerlukan kemasukan perpustakaan fcntl.h dan io.h.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Keluarkan Aksara Unikod ke Konsol Windows Menggunakan 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