2012-11-05 18 views
4

我知道一個簡單的方法來正確顯示Cmd.exe上的本地化字符。但是我怎樣才能做到Powershell.execmd.exe中的控制檯輸出以及C++中的powershell.exe

#include<iostream> 
#include<windows.h> 

using namespace std; 
int main() 
{ 
    SetConsoleCP(GetACP()); 
    SetConsoleOutputCP(GetACP()); 

    // valid output in cmd.exe, 
    // but invalid output in powershell.exe 
    cout << "Привет мир (1)!" << endl; 

    // invalid output in both variants: cmd.exe, 
    // and powershell.exe 
    wcout << L"Привет мир (2)!" << endl; 

    return 0; 
} 

回答

0

什麼是輸出?你的字體是否支持這些字形?

或許下面的鏈接可能是(約CMD.EXE)有用:

http://www.watchingthenet.com/how-to-add-and-change-fonts-in-windows-command-prompt.html

你也可以嘗試從PowerShell的輸出重定向到一個文件,並檢查。如果文件是正確的,你的控制檯字體不支持你的角色。

也有從MS,展示如何自定義字體(約PS)一個博客

http://blogs.msdn.com/b/powershell/archive/2006/10/16/windows-powershell-font-customization.aspx

0

我認爲這是有一個捷徑,使適當wcout在Windows處理。嘗試添加作爲一線您main

_setmode(_fileno(stdout), _O_U16TEXT); 

wcout << L"Привет мир (2)!" << endl;後會像一個魅力的獨立當前區域和單字節編碼由用戶選擇(因爲它應該)。