	ICONV - Charset Conversion Library. Version 1.0
	-----------------------------------------------

This distribution contains the library (libiconv.a and .so) for
conversion between various charsets (character encoding schemes)
and the command line utility (iconv).

Syntax of the library functions (iconv_open, iconv, iconv_close)
and the utility is described in the man pages.

Features of the library:
	- small size: the actual conversion methods are located
	  in dynamically loaded shared modules, representing
	  either a character encoding scheme (CES), or a coded
	  character set (CCS); 
	- open module API: adding new modules (both CESs and
	  CCSs) is easy. Although the API has not been documented,
	  it is rather simple to be figured out from the sources;
	- BSD-style copyright;
	- POSIX compliance of iconv_open, iconv and iconv_close
	  functions;
	- support for aliases for charset names via UNIX symbolic
	  links;
	- ISO/IEC 10646 conformance of the internal representation
	  of characters; conversion is always done in two steps:
	  (1) a sequence of zero or more bytes from input buffer
	  coded in the source charset is converted to exactly one
	  valid UCS-4 character and (2) the UCS-4 character is
	  converted to a sequence of zero or more bytes in
	  the target charset to the output buffer;
	- standard sources of CCS tables: all C source files of
	  the tables have been generated by a Perl script from
	  the Unicode and RFC1345 charset mapping tables before
	  being included to the package.

				Konstantin Chuguev
				<Konstantin.Chuguev@dante.org.uk>
				September 2000.
