ImageMagick 不呈现所有 Unicode 字符

ImageMagick not rendering all Unicode characters

我想用 ImageMagick 渲染小的单字符图像。

我是这样称呼它的:

echo -n "\u1407" | convert -background black -fill white \
  -font /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
  -pointsize 12 label:@- gif:1407.gif

当我在我的终端上回显时,它设置了这种字体 (DejaVu-Sans-Mono),我看到这个三角形: 但在 GIF 中只是一个问号。没有特殊标记,只是一个问号。它适用于其他一些字符,例如这些特殊的括号:⟨⟩27e827e9,但下一对不再起作用。

我需要做什么才能启用该字体提供的所有字符?我是不是设置错字体了?

我的发行版是 LMDE。

使用 bash 和 unicode,我总是需要退后一步,多做一步。

echo -n ᐇ | hexdump

这给了我正确的十六进制三元组

0000000 e1 90 87

那么我在 bash 中的 unicode 转义序列将是..

echo -ne "\xE1\x90\x87"

(省略换行符 0x0A)

echo -ne "\xE1\x90\x87" | convert -background black -fill white \
  -font /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf \
  -pointsize 12 label:@- gif:1407.gif

但是这会产生以下图像 ,因为该字符不属于 DejaVu Sans Mono 集,但它属于 DejaVu Sans.

echo -ne "\xE1\x90\x87" | convert -background black -fill white \
  -font /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf \
  -pointsize 12 label:@- gif:1407.gif

Additional info 关于 ᐇ

不包含此字形可能有完全正当的理由。有礼貌的做法是联系 DejaVu 团队,询问这是不是一个错误,或者包含在其他地方。 IRC & Mailing lists 是一个好的开始。