【问题标题】:Mocha test output fonts missing?摩卡测试输出字体丢失?
【发布时间】:2012-08-04 15:03:29
【问题描述】:

我正在运行我的 Mocha 单元测试,如下所示(带输出)

[jiewmeng@JM Tickle]$ cake test-ui
path.existsSync is now called `fs.existsSync`.


  hello
    ��� should pass 
    ��� should pass 2 

  Home page
    ��� should have a title of Express (72ms)


  ��� 3 tests complete (77ms)

如您所见(希望如此),我有“?”而不是我期望的刻度/十字架?我想我错过了一些字体?他们是谁?我在 Arch Linux 上

更新

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

字体是 DejaVu Sans Mono Book

【问题讨论】:

  • 您使用的是哪个终端,是否启用了 utf8 支持?
  • @travis,它的 XFCE 终端。如何检查 UTF8 支持?

标签: unit-testing node.js unicode console mocha.js


【解决方案1】:

一个可能的问题是您的编码不是 utf-8。

尝试在终端中运行locale。如果您支持 utf-8,您应该会看到类似以下内容:

[ ~ ]
➜ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
[ ~ ]
➜ 

(我在 OSX 上,所以我的输出可能有或多或少的变量;需要注意的重要一点是 en_US.UTF-8 值)。

如果没有,您可能想尝试在配置中取消注释(或添加)一行:

export LANG=en_US.UTF-8

根据您的系统,适当的配置文件可能是以下之一:

  • /etc/rc.conf #
  • /etc/环境
  • /etc/profile.d/lang.sh

这将更改所有用户的编码,但理论上您也可以通过将行添加到以下之一来为您的用户进行更改:

  • ~/.pam_environment
  • ~/.profile

我可以提供更多了解您的系统(操作系统、版本等)的信息。

您可能还想查看:https://unix.stackexchange.com/questions/22435/how-to-fix-character-encoding-in-bash-arch-linux

【讨论】:

  • 糟糕...完全错过了上面的“Arch Linux”注释。调整我的回应。
  • 所以我 export LANG=en_US.UTF-8 现在我在 locale 输出中看到 UTF-8 但我的字体仍然丢失?也许字体不可用?
  • 其他变量是 utf-8 还是只是 LANG? (你会粘贴你的locale 输出吗?)另外你使用的是什么字体? (你能检查一下终端偏好吗?)
  • 我找到了一些关于 unicode 支持和 DejaVu 状态的资源。 en.wikipedia.org/wiki/DejaVu_Sans_Mono dejavu-fonts.org/wiki/index.php?title=Current_status 您可能想尝试切换到另一种字体(我使用 Menlo;comparison between Menlo & DejaVu)。看看有没有用。
  • 抱歉,没有意识到 Menlo 是 OSX 内置的;以为我下载了它:(试试M+,看起来完全不同,但我只是测试了它。
【解决方案2】:

要了解您的终端使用哪种编码,您可以查看/usr/share/xsessions/06xfce4.desktop(来源:XFCE faq)。

查看mocha source 似乎不是字体问题,因为他们只是将字符设置为 UTF-8 字符本身。此外,来源只是表明,每当他们设置字体时,他们会使用类似于'helvetica, arial, sans-serif' 的字体,这可能会在您的系统上默认为不支持该字符的字体。 (来源:find . -iname "*.*" -exec grep -Hn "font" {} \; 源代码 - 他们似乎也使用字体:12px monaco, monospace; 在 css 中,但据我所知,这与控制台输出没有任何关系。)

尝试找出您的终端使用的字体或系统上默认的“helvetica, arial, sans-serif”。 (可能最简单的检查方法是使用 css。)

仅供参考:他们似乎使用的 x 符号:

✖
HEAVY MULTIPLICATION X
Unicode: U+2716, UTF-8: E2 9C 96

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多