Apabila cuba mengeluarkan aksara Unikod ke konsol Windows menggunakan cout dalam C , aksara pelik dipaparkan sebaliknya. Mengapa ini berlaku, dan adakah mungkin untuk memaparkan aksara Unicode dengan betul?
Isu timbul daripada kelakuan lalai konsol Windows, yang tidak mengendalikan output Unicode. Untuk menyelesaikan masalah ini, strim output aksara lebar std::wcout boleh digunakan dan bukannya cout.
#include <iostream> int main() { std::wcout << L"Hello World!" << std::endl; return 0; }
Walau bagaimanapun, walaupun dengan std::wcout, konsol mungkin masih gagal mengendalikan output Unicode. Untuk menangani perkara ini, konsol boleh dikonfigurasikan secara manual.
Untuk mengkonfigurasi konsol secara manual:
Penyelesaian lain ialah menggunakan _setmode(_fileno(stdout), _O_U16TEXT);. Fungsi ini memerlukan kemasukan fcntl.h dan io.h, dan membenarkan aliran output mengendalikan aksara Unicode.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Aksara Unikod dengan Betul dalam Konsol Windows Menggunakan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!