@node iconv_open
@section @code{iconv_open}
@findex iconv_open

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv_open.html}

Gnulib module: iconv, iconv_open, iconv_open-utf

Portability problems fixed by either Gnulib module @code{iconv} or @code{iconv_open}:
@itemize
@item
GNU libiconv is not found if installed in @file{$PREFIX/lib}.
@item
No converter from EUC-JP to UTF-8 is provided on some platforms:
HP-UX 11.
@end itemize

Portability problems fixed by Gnulib module @code{iconv_open}:
@itemize
@item
This function recognizes only non-standard aliases for many encodings (not
the IANA registered encoding names) on many platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2010-11, z/OS.
@end itemize

Portability problems fixed by Gnulib module @code{iconv_open-utf}:
@itemize
@item
This function does not support the encodings UTF-16BE, UTF-16LE, UTF-32BE,
UTF-32LE on many platforms:
AIX 5.1, HP-UX 11, IRIX 6.5.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 14, Android 8.1,
when GNU libiconv is not installed.
@item
For some encodings A and B, this function cannot convert directly from A to B,
although an indirect conversion from A through UTF-8 to B is possible.  This
occurs on some platforms: Solaris 11 2010-11.  Gnulib provides a higher-level
facility @code{striconveh} (a wrapper around @code{iconv}) that deals with
this problem.
@item
The set of supported encodings and conversions is system dependent.
@end itemize
