2012-12-05 30 views
1

在Visual C中編碼時,Windows似乎用1252代碼頁輸出文本。如何將Windows控制檯輸出代碼頁設置爲1252以外的其他?

如何將代碼頁設置爲其他內容,例如UTF7,來自C代碼? (例如,什麼是API函數調用?)

我看着How to Output Unicode Strings on the Windows Console,但它沒有給出具體問題的確切答案。

而且this answer說明如何顯示當前代碼頁,但沒有說明如何從C

+1

沒有,如果你有任何接近1252則控制檯編碼將是437,從前的IBM-PC代碼頁。您可以使用SetConsoleCP() –

+0

@HansPassant對其進行更改,無論我嘗試使用SetConsoleCP的哪個CP(例如,CP_UTF7,CP_WINAPI),該字符串將以完全相同的方式printf到控制檯。 (例如,193,63,140個單字節值在VS2010調試器中顯示爲代碼頁1252個字符,但奇怪的是,在控制檯上實際顯示的是那些打印爲unicode 9524,66,238的值。爲什麼SetConsoleCP不改變字節的顯示方式? –

+1

你必須選擇一個8位編碼,CP_UTF8是一個好主意。您還必須將字體更改爲非終端字體。 Consolas是一個好主意。 –

回答

1

設置代碼頁你必須選擇一個8位編碼,CP_UTF8是一個好主意。您必須然後 也將字體更改爲非終端字體。 Consolas是一個好主意。 - 漢斯帕桑特

SetConsoleCPOutput

相關問題