3 回答

TA貢獻1868條經驗 獲得超4個贊
那std::wcout呢
#include <iostream>
int main() {
std::wcout << L"Hello World!" << std::endl;
return 0;
}
這是標準的寬字符輸出流。
但是,正如Adrian指出的那樣,這并不能解決事實cmd,默認情況下,它不處理Unicode輸出??梢酝ㄟ^手動配置控制臺來解決,如Adrian的答案中所述:
啟動cmd與/u論證;
調用chcp 65001更改輸出格式;
并在控制臺中設置unicode字體(如Lucida Console Unicode)。
您也可以嘗試使用_setmode(_fileno(stdout), _O_U16TEXT);,它需要fcntl.h和io.h(如本答案所述,并在本博客文章中進行了記錄)。

TA貢獻1836條經驗 獲得超13個贊
我不確定Windows XP是否會完全支持您的需求。要使用命令控制臺啟用Unicode,需要做三件事:
使用來啟動命令窗口cmd /u。該/u說您的程序將輸出Unicode。
使用chcp 65001指示要使用UTF-8,而不是代碼頁中的一個。
選擇具有更多字形覆蓋范圍的字體。Windows的較新版本中的命令窗口提供了Lucida Console Unicode。我的XP盒中有一個子集,稱為Lucida Console。它沒有非常豐富的曲目,但是如果您只想顯示一些帶有重音符號的字符,就足夠了。

TA貢獻1883條經驗 獲得超3個贊
您使用了ANSI輸出流。您需要使用
std::wcout << L"Blah blah blah some gibberish unicode: ?????\n";
另外,請使用std :: cin.get(),而不要使用system(“ PAUSE”)
- 3 回答
- 0 關注
- 649 瀏覽
添加回答
舉報