module type Interface = sig
.. end
Module for character encodings.
exception Malformed_code
Failure of decoding
exception Out_of_range
Failure of encoding
type
t
Type for encodings.
val automatic : string ->
t list ->
t ->
t
automatic name [enc_1; enc_2; ... enc_n] enc
creates the new encoding name
doing automatic encoding detection among enc_1
, enc_2
, ..., enc_n
by the given order. enc
is used for encoding.
val new_enc : string -> t -> unit
new_enc name enc
registers the new encoding enc
under the name name
val alias : string -> string -> unit
alias alias name
: Define alias
as an alias of
the encoding with the name name
.
val of_name : string -> t
Returns the encoding of the given name.
Fails if the encoding is unknown.
Encoding names are the same to codeset names in charmap files for
the encodings defined by charmap.
See charmaps directory in the source directory for the available encodings.
In addition to the encodings via the charmap files, camomile supports
ISO-2022-CN, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-KR, jauto (Auto
detection of Japanese encodings), UTF-8, UTF-16, UTF-16BE, UTF-16LE.
UTF-32, UTF-32BE, UTF-32LE, UCS-4(Big endian order).
The encoding also can be referred by "IANA/<IANA name>", if the encoding
is supported.
val name_of : t -> string
Returns the name of the encoding.
Shortcuts
val ascii : t
val latin1 : t
val utf8 : t
val utf16 : t
val utf16be : t
val utf16le : t
val utf32 : t
val utf32be : t
val utf32le : t
val ucs4 : t
val recode_string : in_enc:t ->
out_enc:t -> string -> string
recode_string ~in_enc ~out_enc s
converts the string s
from in_enc
to out_enc
.
class uchar_input_channel_of : t -> CamomileLibrary.OOChannel.char_input_channel ->
[CamomileLibrary.UChar.t]
CamomileLibrary.OOChannel.obj_input_channel
new uchar_input_channel_of enc c_in
creates the new intput
channel which convert characters to Unicode using encoding
enc
.
class uchar_output_channel_of : t -> CamomileLibrary.OOChannel.char_output_channel ->
[CamomileLibrary.UChar.t]
CamomileLibrary.OOChannel.obj_output_channel
new uchar_ouput_channel_of enc c_out
creates the new output
channel which convert Unicode to its byte representation using
encoding enc
.
class convert_uchar_input : t -> CamomileLibrary.UChar.t CamomileLibrary.OOChannel.obj_input_channel ->
CamomileLibrary.OOChannel.char_input_channel
new convert_uchar_input enc c_in
creates the new channel which
convert Unicode input to its byte representation using encoding
enc
.
class convert_uchar_output : t -> CamomileLibrary.UChar.t CamomileLibrary.OOChannel.obj_output_channel ->
CamomileLibrary.OOChannel.char_output_channel
new convert_uchar_output enc c_in
creates the new channel which
convert character output to Unicode using encoding enc
.
class convert_input : in_enc:t -> out_enc:t -> CamomileLibrary.OOChannel.char_input_channel ->
CamomileLibrary.OOChannel.char_input_channel
new convert_input in_enc out_enc c_in
create the new input
channel using encoding out_enc
from the input channel using
encoding in_enc
class convert_output : in_enc:t -> out_enc:t -> CamomileLibrary.OOChannel.char_output_channel ->
CamomileLibrary.OOChannel.char_output_channel
new convert_ouput in_enc out_enc c_in
create the new output
channel using encoding in_enc
from the output channel using
encoding out_enc
class out_channel : t -> Pervasives.out_channel ->
[CamomileLibrary.UChar.t]
CamomileLibrary.OOChannel.obj_output_channel
class in_channel : t -> Pervasives.in_channel ->
[CamomileLibrary.UChar.t]
CamomileLibrary.OOChannel.obj_input_channel
val ustream_of : t ->
char Stream.t -> CamomileLibrary.UChar.t Stream.t
ustream_of enc chars
converts the byte stream chars
to the Unicode character stream by the encoding enc
.
val char_stream_of : t ->
CamomileLibrary.UChar.t Stream.t -> char Stream.t
char_stream_of enc uchars
converts the Unicode character stream
uchars
to the byte stream by the encoding enc
module type Type = sig
.. end
module Make: