Module Uutf.String

module String: sig .. end
Fold over the characters of UTF encoded OCaml string values.


Encoding guess


val encoding_guess : string -> [ `UTF_16BE | `UTF_16LE | `UTF_8 ] * bool
encoding_guess s is the encoding guessed for s coupled with true iff there's an initial BOM.

String folders

Note. Initial BOMs are also folded over.

type 'a folder = 'a -> int -> [ `Malformed of string | `Uchar of Uutf.uchar ] -> 'a 
The type for character folders. The integer is the index in the string where the `Uchar or `Malformed starts.
val fold_utf_8 : ?pos:int -> ?len:int -> 'a folder -> 'a -> string -> 'a
fold_utf_8 f a s ?pos ?len () is f ( ... (f (f a pos u0) j1 u1) ... ) ... ) jn un where ui, ji are the Unicode scalar value and the starting position of the characters in the section of the UTF-8 encoded string s starting at pos and len long. The default value for pos is 0 and len is String.length s - pos.
val fold_utf_16be : ?pos:int -> ?len:int -> 'a folder -> 'a -> string -> 'a
fold_utf_16be f a s ?pos ?len () is f ( ... (f (f a pos u0) j1 u1) ... ) ... ) jn un where ui, ji are the Unicode scalar value and the starting position of the characters in the section of the UTF-16BE encoded string s starting at pos and len long. The default value for pos is 0 and len is String.length s - pos.
val fold_utf_16le : ?pos:int -> ?len:int -> 'a folder -> 'a -> string -> 'a
fold_utf_16le f a s ?pos ?len () is f ( ... (f (f a pos u0) j1 u1) ... ) ... ) jn un where ui, ji are the Unicode scalar value and the starting position of the characters in the section of the UTF-16LE encoded string s starting at pos and len long. The default value for pos is 0 and len is String.length s - pos.