Decouple the mbtowc and wctomb calling conventions.
[libiconv.git] / README
blob93c0755075f928bd543e8451e96a0bcada75f222
1             GNU LIBICONV - character set conversion library
3 This library provides an iconv() implementation, for use on systems which
4 don't have one, or whose implementation cannot convert from/to Unicode.
6 It provides support for the encodings:
8     European languages
9         ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16},
10         KOI8-R, KOI8-U, KOI8-RU,
11         CP{1250,1251,1252,1253,1254,1257}, CP{850,866},
12         Mac{Roman,CentralEurope,Iceland,Croatian,Romania},
13         Mac{Cyrillic,Ukraine,Greek,Turkish},
14         Macintosh
15     Semitic languages
16         ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
17     Japanese
18         EUC-JP, SHIFT-JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
19     Chinese
20         EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5HKSCS,
21         ISO-2022-CN, ISO-2022-CN-EXT
22     Korean
23         EUC-KR, CP949, ISO-2022-KR, JOHAB
24     Armenian
25         ARMSCII-8
26     Georgian
27         Georgian-Academy, Georgian-PS
28     Thai
29         TIS-620, CP874, MacThai
30     Laotian
31         MuleLao-1, CP1133
32     Vietnamese
33         VISCII, TCVN, CP1258
34     Platform specifics
35         HP-ROMAN8, NEXTSTEP
36     Full Unicode
37         UTF-8
38         UCS-2, UCS-2BE, UCS-2LE
39         UCS-4, UCS-4BE, UCS-4LE
40         UTF-16, UTF-16BE, UTF-16LE
41         UTF-32, UTF-32BE, UTF-32LE
42         UTF-7
43         JAVA
44     Full Unicode, in terms of `uint16_t' or `uint32_t'
45         (with machine dependent endianness and alignment)
46         UCS-2-INTERNAL, UCS-4-INTERNAL
47     Locale dependent, in terms of `char' or `wchar_t'
48         (with machine dependent endianness and alignment, and with OS and
49         locale dependent semantics)
50         char, wchar_t
52 It can convert from any of these encodings to any other, through Unicode
53 conversion.
55 It has also some limited support for transliteration, i.e. when a character
56 cannot be represented in the target character set, it can be approximated
57 through one or several similarly looking characters. Transliteration is
58 activated when "//TRANSLIT" is appended to the target encoding name.
60 libiconv is for you if your application needs to support multiple character
61 encodings, but that support lacks from your system.
63 Installation:
65 As usual for GNU packages:
67     $ ./configure --prefix=/usr/local
68     $ make
69     $ make install
71 This library can be built and installed in two variants:
73   - The library mode. This works on all systems, and uses a library
74     `libiconv.so' and a header file `<iconv.h>'. (Both are installed
75     through "make install".)
77     To use it, simply #include <iconv.h> and use the functions.
79     To use it in an autoconfiguring package:
80     - If you don't use automake, append extras/iconv.m4 to your aclocal.m4
81       file.
82     - If you do use automake, add extras/iconv.m4 to your m4 macro repository.
84   - The libc plug/override mode. This works on GNU/Linux, Solaris and OSF/1
85     systems only. It is a way to get good iconv support without having
86     glibc-2.1.
87     It installs a library `libiconv_plug.so'. This library can be used with
88     LD_PRELOAD, to override the iconv* functions present in the C library.
90     On GNU/Linux and Solaris:
91         $ export LD_PRELOAD=/usr/local/lib/libiconv_plug.so
93     On OSF/1:
94         $ export _RLD_LIST=/usr/local/lib/libiconv_plug.so:DEFAULT
96     A program's source need not be modified, the program need not even be
97     recompiled. Just set the LD_PRELOAD environment variable, that's it!
100 Distribution:
101     ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.6.1.tar.gz
102     ftp://ftp.ilog.fr/pub/Users/haible/gnu/libiconv-1.6.1.tar.gz
104 Homepage:
105     http://clisp.cons.org/~haible/packages-libiconv.html
108 Bruno Haible <haible@clisp.cons.org>