Joe*_*ite 11 unicode powershell mocha.js windows-console
当我运行Mocha时,它会分别尝试为通过或失败的测试运行显示复选标记或X. 我见过Mocha输出的精美截图.但这些截图都是在Mac或Linux上拍摄的.在Windows的控制台窗口中,这些字符都显示为一个不起眼的空框字符,经典的"嗯?" 字形:
如果我在控制台窗口中突出显示文本并将其复制到剪贴板,我会看到实际的Unicode字符; 我可以将花哨的字符粘贴到Web浏览器的文本框中,它们渲染得很好(✔,✖).所以Unicode输出正好进入控制台窗口; 问题是控制台窗口没有正确显示这些字符.
我该如何解决这个问题,以便所有Mocha的输出(包括✔和✖)在Windows控制台中正确显示?
Joe*_*ite 25
通过将角色粘贴到LinqPad中,我能够发现它们是' 重型标记'(U + 2714)和' 重复乘法X'(U + 2716).看起来在Windows 7中可用的任何控制台字体(Consolas,Lucida控制台或光栅字体)中都不支持任何字符.事实上,在Windows 7附带的所有字体中,只有少数支持这些字符(Meiryo,Meiryo UI,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic和Segoe UI Symbol).以"MS"开头的那些都是固定宽度(等宽字体)字体,但它们在控制台典型的字体大小上看起来都很糟糕.其他人都出局了,因为控制台需要固定宽度的字体.
所以你需要下载一个字体.我喜欢幻觉记忆国界单 -它是免费的,它看起来不错,在控制台的大小,可以很容易地告诉0
从O
与1
从I
从l
,并且它有各种花式的Unicode符号,包括检查和X是摩卡使用的.
不幸的是,安装一个新的控制台字体有点痛苦,但它是可行的.(Scott Hanselman从这篇文章改编的步骤,但扩展到包括非显而易见的细微之处000
.)
脚步:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
.0
一个名为value 且一个名为的值00
,因此我不得不命名新的名称000
.DejaVu Sans Mono
.现在摩卡的输出将显示出它的所有荣耀.
更新:此问题现已修复.从Mocha 1.7.0开始,后备用于默认控制台字体中不存在的符号(√而不是✔,×而不是✖等).它并不像它可能的那样美观,但它确实胜过空盒占位符.
有关详细信息,请参阅相关的拉取请求:https://github.com/visionmedia/mocha/pull/641