libiconv is an open-source international character encoding library licensed under an LGPL license. Its use is common with web servers that make heavy use of XML, as XML standards recommend internationalization. This library, when used correctly, allows us to convert to and from Unicode and other encodings, even where the operating system does not provide support for this.
By the time you read this, it is possible that the latest version has been updated. You may want to use a newer version, but it's possible a newer version might not work the same way. To ensure a positive outcome, don't upgrade unless you have a good reason to, or if the iconv folks recommend you to do so on their website.
libiconv has no prerequisites, but its authors recommend installing gettext.
As I write this, the latest version of libiconv is 1.13.1. You can download this, or another version, at http://ftp.gnu.org/pub/gnu/libiconv/. Assuming you want to install version 1.13.1: download libiconv-1.13.1.tar.gz; put this into a temporary folder, such as /tmp/iconv, and follow the rest of these instructions to install it.
$ mkdir /tmp/iconv $ cd /tmp/iconv $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
$ cd /tmp/iconv $ gzip -dc < libiconv-1.13.1.tar.gz | tar -xf - $ cd libiconv-1.13.1
$ ./configure --prefix=/usr $ make
# make install
This version of libiconv, when installed, produces a few files: a libtool library /usr/lib/libiconv.la, a dynamic library /usr/lib/libiconv.so, and a "preloadable" dynamic library /usr/lib/preloadable_libiconv.so. Sometimes you will need to install these to a different place, but most libraries expect to be found in either /lib, /usr/lib, or /usr/local/lib. If you'd rather install these files under /usr/local/lib, for instance, you should pass --prefix=/usr/local to the configure script.
I personally dislike outdated documentation. If anything here seems wrong, or perhaps did not work for you, please email me (jay@petio.org) and tell me so I can update it. Thanks!