Update from gnulib.
[libiconv.git] / README
blob6d4b2f9240cabf648026c1d457d5714719436741
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,1131},
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         ISO-2022-JP-MS
20     Chinese
21         EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS,
22         BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN,
23         ISO-2022-CN-EXT
24     Korean
25         EUC-KR, CP949, ISO-2022-KR, JOHAB
26     Armenian
27         ARMSCII-8
28     Georgian
29         Georgian-Academy, Georgian-PS
30     Tajik
31         KOI8-T
32     Kazakh
33         PT154, RK1048
34     Thai
35         ISO-8859-11, TIS-620, CP874, MacThai
36     Laotian
37         MuleLao-1, CP1133
38     Vietnamese
39         VISCII, TCVN, CP1258
40     Platform specifics
41         HP-ROMAN8, NEXTSTEP
42     Full Unicode
43         UTF-8
44         UCS-2, UCS-2BE, UCS-2LE
45         UCS-4, UCS-4BE, UCS-4LE
46         UTF-16, UTF-16BE, UTF-16LE
47         UTF-32, UTF-32BE, UTF-32LE
48         UTF-7
49         C99, JAVA
50     Full Unicode, in terms of 'uint16_t' or 'uint32_t'
51         (with machine dependent endianness and alignment)
52         UCS-2-INTERNAL, UCS-4-INTERNAL
53     Locale dependent, in terms of 'char' or 'wchar_t'
54         (with machine dependent endianness and alignment, and with OS and
55         locale dependent semantics)
56         char, wchar_t
57         The empty encoding name "" is equivalent to "char": it denotes the
58         locale dependent character encoding.
60 When configured with the option --enable-extra-encodings, it also provides
61 support for a few extra encodings:
63     European languages
64         CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
65     Semitic languages
66         CP864
67     Japanese
68         EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3
69     Chinese
70         BIG5-2003 (experimental)
71     Turkmen
72         TDS565
73     Platform specifics
74         ATARIST, RISCOS-LATIN1
76 It can convert from any of these encodings to any other, through Unicode
77 conversion.
79 It has also some limited support for transliteration, i.e. when a character
80 cannot be represented in the target character set, it can be approximated
81 through one or several similarly looking characters. Transliteration is
82 activated when "//TRANSLIT" is appended to the target encoding name.
84 libiconv is for you if your application needs to support multiple character
85 encodings, but that support lacks from your system.
88 Installation
89 ------------
91 As usual for GNU packages:
93     $ ./configure --prefix=[[PREFIX]]     where [[PREFIX]] is e.g. $HOME/local
94     $ make
95     $ make install
97 After installing GNU libiconv for the first time, it is recommended to
98 recompile and reinstall GNU gettext, so that it can take advantage of
99 libiconv.
101 On systems other than GNU/Linux, the iconv program will be internationalized
102 only if GNU gettext has been built and installed before GNU libiconv. This
103 means that the first time GNU libiconv is installed, we have a circular
104 dependency between the GNU libiconv and GNU gettext packages, which can be
105 resolved by building and installing either
106   - first libiconv, then gettext, then libiconv again,
107 or (on systems supporting shared libraries, excluding AIX)
108   - first gettext, then libiconv, then gettext again.
109 Recall that before building a package for the second time, you need to erase
110 the traces of the first build by running "make distclean".
112 This library installs:
113   - a library 'libiconv.so',
114   - a header file '<iconv.h>'.
116 To use it, simply #include <iconv.h> and use the functions.
118 To use it in an autoconfiguring package:
119   - If you don't use automake, append m4/iconv.m4 to your aclocal.m4
120     file.
121   - If you do use automake, add m4/iconv.m4 to your m4 macro repository.
122   - Add to the link command line of libraries and executables that use
123     the functions the placeholder @LIBICONV@ (or, if using libtool for
124     the link, @LTLIBICONV@). If you use automake, the right place for
125     these additions are the *_LDADD variables.
126 Note that 'iconv.m4' is also part of GNU gnulib, available through
127 the gnulib module 'iconv'.
130 Copyright
131 ---------
133 The libiconv and libcharset _libraries_ and their header files are under LGPL,
134 see file COPYING.LIB.
136 The iconv _program_ and the documentation are under GPL, see file COPYING.
139 Download
140 --------
142     https://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz
144 Homepage
145 --------
147     https://www.gnu.org/software/libiconv/
149 Bug reports
150 -----------
152 Report bugs
153   - in the bug tracker at <https://savannah.gnu.org/projects/libiconv>
154   - or by email to <bug-gnu-libiconv@gnu.org>.
157 Bruno Haible <bruno@clisp.org>