HarfBuzz language_from_string Python 内省方法不接受 str

HarfBuzz language_from_string Python introspection method doesn't accept str

我刚刚开始使用 HarfBuzz,并已切换到使用 GObject Introspection interface to explore its API. Everything has been easy so far, but I'm a bit confused with language_from_string,它具有以下文档字符串:

language_from_string(str:list) -> HarfBuzz.language_t

即在 IPython 中,我做:

from gi.repository import HarfBuzz

?HarfBuzz.language_from_string

在原版 Python 中,您可以将最后一行替换为:print(HarfBuzz.language_from_string.__doc__)(或类似的)

如果我用字符串调用这个方法,例如:

HarfBuzz.language_from_string('en')

我明白了

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Item 0: Must be number, not str

返回,而如果我先转换为代码点列表:

en = HarfBuzz.language_from_string(list(map(ord, 'en')))

错误消失了,我得到了一些有用的东西。例如我能做到:

HarfBuzz.language_to_string(en)

我得到了预期的 en,在一个字符串中。

HarfBuzz Issue #91 与此方法有关,但似乎不相关。

你必须在 python3 中像 HarfBuzz.language_from_string(b'en') (字符串但以 b 为前缀)那样调用它,因为与 py2 不同,在 py3 中字符串不再只是字节序列。

您知道任何 gi API 可以在 python3 中获得字符串的实际 python 表示吗?如果是这样,请告诉我,否则这是 HarfBuzz 方面的预期。