5

にローカライズされた文字を正しく表示する簡単な方法を知っていCmd.exeます。しかし、どうすれば同じことができ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;
}
4

2 に答える 2

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

于 2012-11-06T13:36:09.497 に答える
0

Windowsで適切な wcout処理を有効にするためのショートカットがあると思います。あなたの最初の行としてそれを追加してみてくださいmain

_setmode(_fileno(stdout), _O_U16TEXT);

その後wcout << L"Привет мир (2)!" << endl;、現在のロケールとユーザーが選択したシングルバイトエンコーディングとは関係なく、チャームのように機能します (そうあるべきです)。

于 2015-07-05T16:27:39.463 に答える