如何以编程方式检查 GLib 支持哪个版本的 unicode

How to programmatically check which version of unicode is supported by GLib

我看到 GLib 中对 3-em 破折号的支持一定是相当新的,因为它仅在 Unicode 6.1.0 中引入。一个更普遍的问题由此产生:是否可以通过编程方式确定支持的 unicode 版本,而无需筛选 GLib 变更日志? (编辑:https://ftp.gnome.org/pub/gnome/sources/glib/2.31/glib-2.31.20.changes 给我的信息是,例如 2.31.20 添加了对版本 6.1.0 的支持。)

GLib 参考手册指出

The implementations of the Unicode functions in GLib are based on the Unicode Character Data tables, which are available from www.unicode.org. GLib 2.8 supports Unicode 4.0, GLib 2.10 supports Unicode 4.1, GLib 2.12 supports Unicode 5.0, GLib 2.16.3 supports Unicode 5.1, GLib 2.30 supports Unicode 6.0.

对于受最近颠覆影响的案例来说,这有点含糊。 (据我所知,目前支持的版本至少是 8.0。)

Is it possible to programmatically determine the supported unicode version, without sifting through GLib changelogs?

tl;dr: 不。与 GLib 中的其余版本检查一样,如果您想在构建时检查,它都是基于调用 glib_check_version() (or the GLIB_CHECK_VERSION() 宏)并将其与您的版本进行比较知道包含你想要的。是否要检查某个功能是否可用或是否支持给定版本的 Unicode 都是一样的。

目前,要知道哪个版本的 GLib 支持给定的 Unicode 版本,唯一的方法就是查看变更日志,正如您所发现的那样。

我已经提交 merge request 来更新文档以列出支持 Unicode 的版本历史记录。

作为一个数据点,GLib 2.64(最新稳定版)支持Unicode 12.1。