2014-10-22 95 views
0

我想用C++ 這裏打印的Unicode符號在控制檯窗口是我的代碼打印的Unicode

_setmode(_fileno(stdout), _O_U16TEXT); 
std::wcout << L"\u2B24"; 

奇怪的是,這個代碼給出正確的輸出對於一些統一碼,而不是(它打印問號而不是字符)。我無法弄清楚爲什麼。 爲例工程this(\ u061F),而不是作品this(\ u2B24)

任何想法,我缺少的是什麼?

編輯:

代碼:std::wcout << L"Test-"<<L"\u061F"<< L"-Test" << std::endl;

輸出:Test-?-Test

+0

定義「作品」。尤其要區分顯示和存儲。你能複製那個角色嗎,然後它被正確存儲。 – 2014-10-22 08:22:19

+0

@乾杯和hth。 Alf:對不起,我沒有明白你的意思? – 2014-10-22 08:23:51

+0

在\ u2B24之前和之後添加一些普通文本。輸出到控制檯。從控制檯複製並粘貼到例如Windows'「寫」。或Word。我已經檢查過「寫入」可以在Windows 8.1中顯示該字符,但可以通過鍵入2B24並按下Alt X來檢查它。請注意,這是在一個組中,例如, Chrome瀏覽器處理不好。 – 2014-10-22 08:26:08

回答

0

這可以取決於真實構造成由所述控制檯窗口要使用的字體。如果正在使用的字體沒有您引用的Unicode條目,則不會顯示它。您可以在命令窗口的屬性中檢查您正在使用的字體。然後在MS提供的字符映射應用程序中打開該字體,並且可以檢查哪些代碼可用。

順便說一下,你可以add fonts to the Console window。但是,您可能需要記住,運行軟件的其他人可能沒有配置與您相同的字體。