簡體   English   中英

cmd.exe中的控制台輸出,以及通過C ++的powershell.exe

[英]Console output in cmd.exe, and powershell.exe through C++

我知道一種在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;
}

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

也許以下鏈接可能有用(關於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

我認為這是在Windows中啟用正確的 wcout處理的快捷方式。 嘗試添加作為一線到您的main

_setmode(_fileno(stdout), _O_U16TEXT);

之后wcout << L"Привет мир (2)!" << endl; wcout << L"Привет мир (2)!" << endl; 將像魅力一樣獨立於當前語言環境和用戶選擇的單字節編碼( 應該如此 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM