2017-09-12 60 views
1

我一直在用C++打印中文字符。我已經在互聯網上搜索過,有人說你必須使用wcout,其他人提出了其他方法。我還無意中發現了this post,如果有人使用了一段代碼:在C++中打印中文字符

#include <iostream> 
int main() 
{ 
char x[] = "中"; 
char y[] = u8"中"; 
wchar_t z = L'中'; 
char16_t b = u'\u4e2d'; 
char32_t a = U'\U00004e2d'; 

std::cout << x << '\n'; 
std::cout << y << '\n'; 
std::wcout << z << '\n'; 
std::cout << a << '\n'; 
std::cout << b << '\n';  
} 

當中,對互聯網網站,顯示的C++代碼的輸出,打印:

中 
中 
- 
20013 
20013 

但是,對我來說它只是打印

õ©¡ 
õ©¡ 
20013 
20013 

我使用JetBrains CLion,編碼設置爲UTF-8。但是,我也嘗試過Visual Studio和QT Creator,我得到了相同的結果。我希望有人能幫助我。

+2

問題來自終端(其中cout寫入)不使用所有可能的符號,而只是整個Unicode的一個子集。 – Ripi2

+2

[如何在C++中打印Unicode字符?](https://stackoverflow.com/questions/12015571/how-to-print-unicode-character-in-c) – Ripi2

回答

0

如果您使用OSX終端,也許您可​​以檢查編碼。

客運站 - >首選項 - >編碼標籤

如果中國傳統檢查或再檢查的Unicode(UTF-8)

對於Windows,您可以嘗試此操作以更改爲UTF-8編碼。

轉到開始,然後運行 ​​「Regedit」 - >導航,[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\命令處理器\自動運行] - >修改的值改爲 「的chcp 65001

希望這有助於。