* LibIconv-1.9.2 for Windows *
==============================

What is it?
-----------
LibIconv: convert between character encodings

Description
-----------
LibIconv converts from one character encoding to another through Unicode
conversion (see Web page for full list of supported encodings). It has
also limited support for transliteration, i.e. when a character cannot be
represented in the target character set, it is approximated through one
or several similar looking characters. It is useful if your application
needs to support multiple character encodings, but that support lacks from
your system.

- Libiconv-1 is in Libiconv-1.7
	 
Homepage
--------
http://www.gnu.org/software/libiconv
	 
System
------
- MS-Windows 95 / 98 / ME / NT / 2000 / XP with msvcrt.dll
- if msvcrt.dll is not in your Windows/System folder, get it from
  Microsoft <http://support.microsoft.com/default.aspx?scid=kb;en-us;259403">
  or by installing Internet Explorer 4.0 or higher
  <http://www.microsoft.com/windows/ie>- libgw32c <http://gnuwin32.sourceforge.net/packages/libgw32c.htm> (for developing with LibIconv library)

Notes
-----
- Bugs and questions on this MS-Windows port: gnuwin32@users.sourceforge.net

Package Availability
--------------------
- in: http://gnuwin32.sourceforge.net

Sources
-------
- libiconv-1.9.2-1-src.zip

Compilation
-----------
The package has been compiled with GNU auto-tools, GNU make, and Mingw
(GCC for MS-Windows). Any differences from the original sources are given
in libiconv-1.9.2-1-GnuWin32.diffs in libiconv-1.9.2-1-src.zip. Libraries needed
for compilation can be found at the lines starting with 'LIBS = ' in the
Makefiles. Usually, these are standard libraries provided with Mingw, or
libraries from the package itself; 'gw32c' refers to the libgw32c package,
which provides MS-Windows substitutes or stubs for functions normally found in
Unix. For more information, see: http://gnuwin32.sourceforge.net/compile.html
and http://gnuwin32.sourceforge.net/packages/libgw32c.htm.
