“Unicode 换行算法”(UAX#14)的实现

Posted

技术标签:

【中文标题】“Unicode 换行算法”(UAX#14)的实现【英文标题】:The implementations of the "Unicode Line Breaking Algorithm" (UAX#14) 【发布时间】:2018-12-14 15:28:39 【问题描述】:

我一直在四处寻找Unicode Line Breaking Algorithm (UAX#14) 的最新实现来移植它以满足我的需要。

我找到了一个old,但看似规范sample implementation 的算法,其中使用了“基于对表的实现”。该实现引用了被删除的旧文档starting from Unicode 10.0 的corresponding section。所以,

为什么"§7: Pair Table-Based Implementation"被删除,有什么替代方案?

算法的最新版本是否有任何公开和完整的实现,或者至少是算法的最后一个版本,其中“基于表的实现”还在(Unicode 9.0)?

【问题讨论】:

【参考方案1】:

#14 和 #29 的最新官方换行符实现包含在 Unicode 组织维护的 Rust crate icu_segmenter 中。请参阅https://unicode-org.github.io/icu4x-docs/doc/icu_segmenter/ 上的 API 文档

【讨论】:

【参考方案2】:

这是 javascript 中的一个:linebreak

【讨论】:

那个也是基于pair表的

以上是关于“Unicode 换行算法”(UAX#14)的实现的主要内容,如果未能解决你的问题,请参考以下文章

direction和unicode-bidi

如何在 Java 中正确计算字符串的长度?

Suse Linux Enterprise Server 11sp2 64位下载地址

使用 Apple 的 iOS14 ATT 提示可以实现啥选择率? [关闭]

实现 C++14 make_integer_sequence

Redis设计与实现 第 14 章 服务器