繁体   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