Differences between iconv from ports and iconv in base (transliteration)

Michael Gmelin freebsd at grem.de
Fri Dec 6 02:47:24 UTC 2013

On Fri, 6 Dec 2013 00:15:54 +0100
Michael Gmelin <freebsd at grem.de> wrote:

> I'm in the process of changing ports from ports iconv to iconv in
> base. I noticed that transliteration doesn't work in base as it does
> with iconv from ports. Examples:
> "T\xc5\xbdst"
> ports: "TZst"
> base: "Tst"
> "T\xe2\x82\xacst"
> ports: "TEURst"
> base: "Tst"
> Conversion done using:
> iconv_open("ISO8859-1//IGNORE//TRANSLIT", "UTF-8");
> Any ideas?

I just checked /usr/src/lib/libc/iconv, it says in iconv_open:

         * Remove anything following a //, as these are options (like
         * //ignore, //translate, etc) and we just don't handle them.
         * This is for compatibility with software that uses these
         * blindly.

So basically any software that depends on using these options
will break.

The porters handbook doesn't mention the fact that converters/libiconv
and native iconv are not equivalent [1].

I think this is problematic.

[1] http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/using-iconv.html

Michael Gmelin

More information about the freebsd-ports mailing list