Mencetak Aksara Unikod dalam C
Apabila cuba mencetak aksara dengan nilai Unikod, seperti Cyrillic Small Letter Ef (U 0444) , kod berikut mungkin tidak berfungsi sebagai dijangka:
int main() { wchar_t f = '1060'; cout << f << endl; }
Penyelesaian:
Untuk mencetak aksara Unikod dengan betul, terdapat beberapa kaedah:
Nama Watak Universal (UCN):
Aksara Harfiah (jika disokong oleh pengekodan sumber):
Untuk pencetakan terminal, kod berikut menganggap keserasian antara pengekodan pelaksanaan dan emulator terminal:
#include <iostream> int main() { std::cout << "Hello, ф or \u0444!\n"; }
Untuk Windows, tetapan pemegang fail output ke mod UTF-16 disyorkan:
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
Untuk kod mudah alih, teknik berikut boleh digunakan:
#include <iostream> #include <vector> int main() { std::vector<wchar_t> v = {0x444}; std::wcout.write((const wchar_t*)&v[0], 1); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Aksara Unikod dengan Betul dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!