在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