Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencetak Aksara Unikod dengan Betul dalam C?

Bagaimanakah Saya Boleh Mencetak Aksara Unikod dengan Betul dalam C?

Linda Hamilton
Lepaskan: 2024-12-11 17:58:10
asal
651 orang telah melayarinya

How Can I Correctly Print Unicode Characters in C  ?

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;
}
Salin selepas log masuk

Penyelesaian:

Untuk mencetak aksara Unikod dengan betul, terdapat beberapa kaedah:

  • Nama Watak Universal (UCN):

    • Watak itu 'ф' boleh diwakili sebagai 'u0444' atau 'U00000444'.
  • Aksara Harfiah (jika disokong oleh pengekodan sumber):

    • Jika pengekodan kod sumber menyokong aksara, ia boleh ditulis terus sebagai 'ф'.

Untuk pencetakan terminal, kod berikut menganggap keserasian antara pengekodan pelaksanaan dan emulator terminal:

#include <iostream>

int main() {
    std::cout << "Hello, ф or \u0444!\n";
}
Salin selepas log masuk

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";
}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

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