对于一个程序,我需要将盲文字符输出到控制台。
我找到了一种使用以下代码输出unicode字符的方法:
#include <iostream>
#include "fcntl.h"
#include "io.h"
using namespace std;
int main() {
_setmode(_fileno(stdout), _O_U16TEXT);
wcout<<L"ĐĄßĞ"<<endl;
return 0;
}
将cmd的字体更改为Lucida Console。
然而,有一个问题是盲文字符没有显示就是这样。实际上,我甚至无法将它们复制并粘贴到代码中,因为它们看起来是空白的。在Linux中一切正常(我可以看到,复制并粘贴这些字符),但我需要Windows应用程序。
我想使用这些字符的代码有一定的可能性,我试过这种方式,但没有成功。
任何人都可以帮我完成这项任务吗?
答案 0 :(得分:1)
您需要安装支持Unicode的等宽字体。为了解决这个问题,我使用了来自http://www.wazu.jp/gallery/Fonts_Braille.html的FreeMono.ttf。
安装字体后,编辑注册表以将字体添加到控制台的字体列表中:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Console \ TrueTypeFont。 Lucida Console和Consolas应该有一个0
和00
条目。为所需的每种字体的值名称添加另一个零。我添加了000
并设置为FreeMono
。
重新启动控制台,然后编辑其属性以选择字体。
这是我使用的代码:
#include <iostream>
#include "fcntl.h"
#include "io.h"
using namespace std;
int main() {
_setmode(_fileno(stdout), _O_U16TEXT);
wcout<<L"\u2876\u2877\u2878"<<endl;
return 0;
}
输出(截图):
注意:我选择的字体没有很好地显示ASCII,所以我不推荐它,但盲文很好。