【问题标题】:Python: How to specify and view high-numbered Unicode characters?Python:如何指定和查看高编号的 Unicode 字符?
【发布时间】:2018-06-11 20:37:12
【问题描述】:

Unicode 字符 U+1d134 是“公共时间”的音乐符号;它看起来像一个大写的“C”。

但是使用 Python 3.6,当我指定 '\U0001d134' 时,我得到一个似乎表示未知符号的字形。在我的 Mac 上,它看起来像一个带有问号的正方形。

无法显示相应的字形仅仅是字体限制,还是其他原因? (就像我做错了什么……)

为了清楚起见,我想在我正在编写的应用程序中使用这个和其他类似的符号,并想知道是否有办法做到这一点。

【问题讨论】:

  • 你在终端上运行这个吗?
  • 是的,这可能是字体限制。尝试复制正方形并将其粘贴到无衬线的位置。
  • @user1767754 是的。
  • @Ryan 谢谢。我在 RTF 模式下用 Helvetica 和 Google Docs 用 Ariel 尝试过 TextEdit,但仍然得到未知字符符号,尽管在 Google doc 中它只是一个空方块。不得不说,在xahlee.info/comp/unicode_music_symbols.html,这个符号和许多其他符号也显示为空方块。
  • 如果字形不是一个常见的字形,可能只是因为您的计算机无法表示它,因为它不是您可用的任何字体。我的电脑显然有一种可以处理它的字体,但我不知道它使用的是什么字体。看来我的浏览器也可以呈现它:'foo\U0001d134bar' 在 Python 和 Firefox 中都显示为 'foo????bar'(最后一个 o 和 b 之间的 C)。

标签: python unicode-literals


【解决方案1】:

问题不在于您的代码,而在于您的本地系统。您没有安装任何包含字符?“MUSICAL SYMBOL COMMON TIME”的字体。

这也是您的浏览器都无法显示它的原因。通常,浏览器非常擅长寻找可以显示特定字符​​的any 字体。他们都失败的原因是上面段落中的内容。

但是——事实上,

>>> print ('\U0001d134')
?

为我工作,显示如下:

我将它粘贴到UnicodeChecker,它有用地列出了包含此字符的“所有”字体:只有一个,Bravura。这是一个开源字体,所以继续下载它。 (如果您想将其与您的应用程序一起分发,请注意遵循正确的程序。)

想我是因为an earlier SO question才安装了那个字体。

【讨论】:

  • 我意识到我不应该在评论中说“谢谢”,但如果我被扣了几分,那该死的。那么,感谢所有提供帮助的人,尤其是确认彼此的回应。而且,@ usr2564301,也感谢您将 cmets 组合成一个答案,并感谢您提到 UnicodeChecker、Bravura 音乐字体和“早期的 SO 问题”,其回答超出了我当前的问题,阐明了使用 OpenType 的一些复杂性为乐谱。 (幸运的是,这不是我打算做的。:-))
猜你喜欢
  • 1970-01-01
  • 2012-10-17
  • 2021-08-18
  • 2012-03-18
  • 2017-01-04
  • 2011-04-19
  • 1970-01-01
  • 2016-05-20
  • 2013-05-13
相关资源
最近更新 更多