首頁 >後端開發 >C++ >如何在 C 中正確列印 Unicode 字元?

如何在 C 中正確列印 Unicode 字元?

Linda Hamilton
Linda Hamilton原創
2024-12-11 17:58:10651瀏覽

How Can I Correctly Print Unicode Characters in C  ?

在 C 中列印 Unicode 字元

嘗試列印具有 Unicode 值的字元時,例如西里爾小寫字母 Ef (U 0444) ,以下程式碼可能無法正常運作預期:

int main() {
   wchar_t f = '1060';
   cout << f << endl;
}

解決方案:

要正確列印Unicode 字符,有以下幾種方法:

  • 一般角色名稱(UCN):

    • 字元「ф」可以表示為「u0444」或「U00000444」。
  • 文字字符(如果來源支援編碼):

    • 如果原始碼編碼支援該字符,可以直接寫成' ф'。

對於終端列印,以下程式碼假設執行編碼和終端模擬器之間相容:

#include <iostream>

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

對於Windows,建議將輸出檔案句柄設定為UTF-16模式:

#include <iostream>
#include <io.h>
#include <fcntl.h>

int main() {
    _setmode(_fileno(stdout), _O_U16TEXT);
    std::wcout << L"Hello, \u0444!\n";
}

對於可移植程式碼,可以使用下列技術:

#include <iostream>
#include <vector>

int main() {
    std::vector<wchar_t> v = {0x444};
    std::wcout.write((const wchar_t*)&v[0], 1);
}

以上是如何在 C 中正確列印 Unicode 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn