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