Module Encoding

module Encoding: sig .. end
Character encodings


type t = string 
Type of a character encoding
val equal : t -> t -> bool
equal e1 e2 returns whether e1 and e2 denotes the same encoding. It does a caseless comparison of e1 or e2 without optionnal suffixes ("//IGNORE" or "//TRANSLIT").
val system : t
The character encoding used by the system
type code_point = int 
Type of a unicode code-point.
val recode_string : src:t -> dst:t -> string -> string
recode_string ~src ~dst str recode str from src encoding to dst encoding.

Decoding

type decoder 
Type of a decoder
val decoder : t -> decoder
Creates a decoder from an encoding-name
type decoding_result = 
| Dec_ok of code_point * int (*Dec_ok(code, num) means that the operation succeed. code is the unicode code-point read and num is the number of bytes read by the decoder.*)
| Dec_need_more (*Dec_not_finished means that the input contains a not-terminated sequence*)
| Dec_error (*Dec_error means that the input contains an invalid sequence*)
Result of a decoding operation
val decode : decoder -> string -> int -> int -> decoding_result
decode decoder buffer ptr len decodes with decoder bytes at position ptr in buffer

Encoding

type encoder 
Type of an encoder
val encoder : t -> encoder
Creates an encoder from an encoding-name
type encoding_result = 
| Enc_ok of int (*Enc_ok num means that the operation succeed and num bytes have been written.*)
| Enc_need_more (*Enc_need_more means that there is not enough space in the output to ouput all bytes.*)
| Enc_error (*Enc_error means that the given code-point cannot be encoded in the given encoding*)
Result of an encoding operation
val encode : encoder ->
string -> int -> int -> code_point -> encoding_result
encode decoder buffer ptr len code encodes code with encoder at position ptr in buffer