1
在Visual C中編碼時,Windows似乎用1252代碼頁輸出文本。如何將Windows控制檯輸出代碼頁設置爲1252以外的其他?
如何將代碼頁設置爲其他內容,例如UTF7,來自C代碼? (例如,什麼是API函數調用?)
我看着How to Output Unicode Strings on the Windows Console,但它沒有給出具體問題的確切答案。
而且this answer說明如何顯示當前代碼頁,但沒有說明如何從C
沒有,如果你有任何接近1252則控制檯編碼將是437,從前的IBM-PC代碼頁。您可以使用SetConsoleCP() –
@HansPassant對其進行更改,無論我嘗試使用SetConsoleCP的哪個CP(例如,CP_UTF7,CP_WINAPI),該字符串將以完全相同的方式printf到控制檯。 (例如,193,63,140個單字節值在VS2010調試器中顯示爲代碼頁1252個字符,但奇怪的是,在控制檯上實際顯示的是那些打印爲unicode 9524,66,238的值。爲什麼SetConsoleCP不改變字節的顯示方式? –
你必須選擇一個8位編碼,CP_UTF8是一個好主意。您還必須將字體更改爲非終端字體。 Consolas是一個好主意。 –