# Module Gutf8

    module Gutf8: sig .. end

Pure ocaml module for conversion between UCS and UTF8

    type unichar = int

    type unistring = unichar array

    val from_unichar : unichar -> string

`from_unichar 0xiii` converts a code point `iii` (usually in hexadecimal form) into a string containing the UTF-8 encoded character `0xiii`. See unicode.org for charmaps. Does not check that the given code point is a valid unicode point.

    val from_unistring : unistring -> string

    val to_unichar_validated : string -> pos:int Stdlib.ref -> unichar

`to_unichar_validated` decodes an UTF-8 encoded code point and checks for incomplete characters, invalid characters and overlong encodings.

- Raises `Convert.Error` if invalid

    val to_unichar : string -> pos:int Stdlib.ref -> unichar

`to_unichar` decodes an UTF-8 encoded code point. Result is undefined if `pos` does not point to a valid UTF-8 encoded character.

    val to_unistring : string -> unistring

`to_unistring` decodes an UTF-8 encoded string into an array of `unichar`. The string must be valid.

    val first_char : string -> unichar

`first_char` returns the first UTF-8 encoded code point.

    val next : string -> pos:int -> int

`next` returns the position of the code point following the one at `pos`.

    val length : string -> int

`length` returns the number of code-points in the UTF-8 encode string

    module Error: sig .. end

`to_unichar_validated` may raise `PARTIAL_INPUT` or `ILLEGAL_SEQUENCE`