Ocaml: unicode字符串长度



在OCaml中,我如何计算可能具有unicode编码的字符串的长度?举个例子,这是我的问题:

utop # "u{02227}";;
- : string = "∧"
utop # Caml.String.length "u{02227}";;
- : int = 3
utop # Base.String.length "u{02227}";;
- : int = 3

和我想要得到显而易见的答案:1.

如果要计算扩展字形簇(也就是图形字符)的数量,可以使用uuseg。例如

let len = Uuseg_string.fold_utf_8 `Grapheme_cluster (fun x _ -> x + 1) 0
let n = len "∧";;

返回

val n: int = 1

最新更新