在 C 中列印 Unicode 字元
嘗試列印具有 Unicode 值的字元時,例如西里爾小寫字母 Ef (U 0444) ,以下程式碼可能無法正常運作預期:
int main() { wchar_t f = '1060'; cout << f << endl; }
解決方案:
要正確列印Unicode 字符,有以下幾種方法:
一般角色名稱(UCN):
文字字符(如果來源支援編碼):
對於終端列印,以下程式碼假設執行編碼和終端模擬器之間相容:
#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中文網其他相關文章!