如何让 Mocha 的 Unicode 输出在 Windows 控制台中正确显示?

2023-12-31

当我跑步时Mocha http://visionmedia.github.com/mocha/,它尝试分别显示复选标记或 X 来表示测试运行通过或失败。我看过 Mocha 输出的漂亮屏幕截图。但这些屏幕截图都是在 Mac 或 Linux 上拍摄的。在 Windows 的控制台窗口中,这些字符都显示为一个不起眼的空框字符,即经典的“嗯?”字形:

如果我在控制台窗口中突出显示文本并将其复制到剪贴板,我确实会看到实际的 Unicode 字符;我可以将花哨的字符粘贴到 Web 浏览器的文本框中,它们渲染得很好 (✔, ✖)。所以 Unicode 输出可以很好地到达控制台窗口;问题是控制台窗口无法正确显示这些字符。

如何解决此问题,以便 Mocha 的所有输出(包括 ✔ 和 ✖)都能在 Windows 控制台中正确显示?


通过将字符粘贴到LinqPad http://www.linqpad.net/,我能够弄清楚他们是“重勾号”(U+2714) http://www.fileformat.info/info/unicode/char/2714/index.htm and ‘重乘法 X’ (U+2716) http://www.fileformat.info/info/unicode/char/2716/index.htm。 Windows 7 中提供的任何控制台字体(Consolas、Lucida Console 或 Raster Fonts)似乎都不支持这两个字符。事实上,all在 Windows 7 附带的字体中,只有少数支持这些字符(Meiryo、Meiryo UI、MS Gothic、MS Mincho、MS PGothic、MS PMincho、MS UI Gothic 和 Segoe UI Symbol)。以“MS”开头的字体都是固定宽度(等宽)字体,但它们在控制台典型的字体大小下看起来都很糟糕。其他的都被淘汰了,因为控制台需要固定宽度的字体。

所以你需要下载一种字体。我喜欢DejaVu Sans Mono http://dejavu-fonts.org/wiki/Main_Page-- 它是免费的,在控制台尺寸上看起来不错,很容易分辨0来自O1来自I来自l,并且它有各种奇特的 Unicode 符号,包括 Mocha 使用的检查和 X。

不幸的是,安装新的控制台字体有点麻烦,但这是可行的。 (步骤改编自斯科特·汉塞尔曼的这篇文章 http://www.hanselman.com/blog/UsingConsolasAsTheWindowsConsoleFont.aspx,但扩展到包括非显而易见的微妙之处000.)

Steps:

  1. 下载 DejaVu 字体。 http://dejavu-fonts.org/wiki/Download解压缩文件。进入刚刚解压的“ttf”目录,选择所有文件,右键单击“安装”。
  2. 运行 Regedit,然后转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont.
  3. 添加新的字符串值。为其指定一个名称,该名称是一串零,比现有的最长的零串长一串。例如,在我的 Windows 7 安装中,已经有一个名为0和一个名叫00,所以我不得不命名新的000.
  4. 双击新值,并将其值设置为DejaVu Sans Mono.
  5. 重启。 (是的,此步骤是必要的,至少在 Windows 7 及之前的操作系统上是这样。)
  6. 现在您可以打开控制台窗口,打开窗口菜单,转到默认值>字体选项卡,并且“DejaVu Sans Mono”应该在字体列表框中可用。选择它并确定。

现在,Mocha 的输出将展现其全部荣耀。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Mocha 的 Unicode 输出在 Windows 控制台中正确显示? 的相关文章

  • UTF-8 和 Unicode,0xC0 和 0x80 是什么意思?

    在过去的几天里 我一直在阅读有关 Unicode 和 UTF 8 的内容 并且经常遇到与此类似的按位比较 int strlen utf8 char s int i 0 j 0 while s i if s i 0xc0 0x80 j i r
  • 无法读取文件内容

    我正在尝试读取文件的内容 releaseNotesPath System DefaultWorkingDirectory ccp develop ccp ccp ReleaseNotes ReleaseNotes latestRelease
  • 将组成员身份从 AD 中的一个用户复制到另一用户

    我正在尝试构建一个脚本 它将组成员身份从 AD 中的一个用户复制到另一个用户 我正在尝试使用 powershell 来自动执行此任务 然而 我在为用户创建支票时陷入困境 换句话说 当我将组成员身份从一个用户复制到另一个用户时 我希望能够在添
  • PowerShell函数不会返回对象

    我有一个简单的函数来创建一个通用列表 function test genericType Type System Collections Generic List 1 type typedParameters System String c
  • 如何使用 Python 将具有非英语字符的变量打印到命令提示符

    我有一个 python 程序 可以生成泰米尔语字符串 例如 字符串可以是 我可以在打开文件时使用 utf 8 将其完全按照此处显示的方式写入文本文件 但是 当我使用 print 函数将相同的字符串变量写入 stdout 时 它会显示 3 个
  • 如何使用 powershell Az 模块为 Azure AD 应用程序提供所需权限的访问权限

    我正在尝试重写 powershell 脚本来创建 Azure AD 应用程序并为其分配权限 该脚本使用 AzureAD 模块 我想使用新的 Az 模块 这样我就可以在 Linux MacOS 上运行它 创建新应用程序很容易 New AzAD
  • 如何在Powershell中将字符串转换为UInt64?字符串到数字的转换

    考虑以下 Powershell 片段 Uint64 Memory 1GB string MemoryFromString 1GB Uint64 ConvertedMemory Convert ToUInt64 MemoryFromStrin
  • 用于根据源列表移动文件的 Powershell 脚本 (.txt

    我的目录中有数千个文件 pdf xls doc 它们都有相似的命名约定 类型 始终是常量字符串 即 账单或发票 帐户名称 帐号 type pdf 帐户名称 帐号 type doc 帐户名称 帐号 type xls 手头的任务是接收帐户名和帐
  • 使用 Powershell 从 JSON 获取值

    非常初学者的问题 我正在尝试使用 Powershell 从 JSON 获取某些值 具体来说 我想列出服务 测试00000 and FAKE only 当我运行下面的脚本时 我得到 TEST00000 FAKE Enabled True Pr
  • MySQL 不将 ı 视为 i?

    我在 MySQL 5 7 27 中有一个用户表utf8mb4 unicode ci整理 不幸的是 没有像 i 那样进行线程化 以下查询将找不到Y lmaz select id from users where name Yilmaz 我对其
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest
  • 在 PowerShell 中调用静态通用 LINQ 扩展方法

    人们可以使用以下简单的表示法在 PowerShell 中调用许多 LINQ 方法 int numbers 1 10000 Linq Enumerable Sum numbers 在调用中包含 lambda 甚至是一件相对简单的事情 Func
  • 无法在 Windows docker 容器中配置 ASP.NET HTTPS 端点

    在 Windows docker 容器中运行 ASP NET Core 时出现此错误 Unhandled Exception System InvalidOperationException Unable to configure HTTP
  • 类型错误:无法读取未定义的属性“存在”

    我正在尝试为 jsx 文件编写一个测试用例 在此我能够传递 proptypes 但不是我正确传递 proptypes 的地方 当我运行测试用例时出现错误 下面提供我的错误 测试用例和代码 类型错误 无法读取未定义的属性 存在 不知道如何让它
  • UTF-8 在 Python 日志记录中,如何?

    我正在尝试使用 Python 的日志记录包将 UTF 8 编码的字符串记录到文件中 作为一个玩具示例 import logging def logging test handler logging FileHandler home ted
  • Powershell“特殊”开关参数

    我有下面的powershell功能 Function Test Param Parameter string Text default text Write Host Text Text 我希望能够像下面这样调用这个函数 测试 文本 应该在
  • SNMP 响应被 PowerShell 破坏?

    考虑以下 PowerShell 代码 SNMP New Object COMObject OLEPrn OLESNMP SNMP Open 10 178 230 105 public 2 3000 MACAddress SNMP Get 1
  • 使用 shell_exec Powershell 输出到 PHP 变量

    我有一个 powershell 脚本 它输出视频文件持续时间 运行这个脚本给了我预期的结果 Folder C my path to folder File sample1 1280 720 mp4 LengthColumn 27 objSh
  • 在结果中只显示一列?

    这是一个简单的问题 但如何在下面的代码中选择特定的列 我只想显示 时间 列 而不显示其他任何内容 我尝试输入 FORMAT TABLE TIME 但它只是多次填充 TIME 而没有实际显示时间 server event Get Conten
  • 使用 PowerShell 检查 AD 中是否存在组

    我想为该组创建代码来检查该组是否存在 但是 我无法开始工作 因为它成功地将用户和组的部分成员仅添加到一个组中 而不是其他组 因为我设法在活动目录中创建一个组并从 csv 中读取 这是我的代码和结果 似乎在成功添加用户并添加组成员后我总是收到

随机推荐