GNATcoll Bindings - Iconv: Converting between character encodings

This package provides a binding to the libiconv library. This library is standard on most Unix systems. When it is not provided by the system, the GNU libiconv package can be installed instead.

Using GNATCOLL.Iconv

Use the gnatcoll_iconv project in your project files. For instance:

with "gnatcoll_iconv";
project Default is
     ...
end Default;

API

The whole API is documented in gnatcoll-iconv.ads. Here is a simple code sample that converts from iso-8859-1 encoding to UTF8:

with GNATCOLL.Iconv;   use GNATCOLL.Iconv;
procedure Main is
   EAcute : constant Character := Character'Val (16#E9#);
   --  in iso-8859-1

   Result : constant String := Iconv
      ("Some string " & EAcute,
       To_Code => UTF8,
       From_Code => ISO_8859_1);
begin
   null;
end Main;

A more advanced (and somewhat more efficient) API is available via the Iconv procedure. In that procedure, you control the input and output buffers, so you will need less overall memory when you are converting big buffers.