Apparently, I do have UTF-16 available on this machine (Solaris 10 on x86). As the attached C program shows, a call to iconv_open with identical "to" and "from" arguments fails with errno 22 (meaning that the conversion is not available). But a conversion from "ISO8859-1" to "UTF-16" (or vice versa) is valid (iconv_open returns a valid descriptor instead of -1). So it appears that the method of passing the same codeset as both "to" and "from" arguments to determine if that codeset is present does not work on Solaris. However, this same behavior occurs on Solaris SPARC, so now I don't understand why Solaris SPARC external commands do not fail.