Php: Proper iconv

Created on 7 Jun 2016  ·  41Comments  ·  Source: docker-library/php

iconv is not working as expected on a vanilla php image. The solution is to install GNUs libiconv:
https://ftp.gnu.org/pub/gnu/libiconv/
... and linking this with php during configure process, _or_ give the GNU library precedence:

ENV LD_PRELOAD /usr/local/lib/preloadable_libiconv.so

In any case, this script should _not_ produce errors (as it does on current php images):

ini_set('display_errors', '1');
error_reporting(-1);

// should NOT produce:
// iconv(): Wrong charset, conversion from `UTF-8' to `ASCII//TRANSLIT' is not allowed in [...]
iconv("UTF-8", "ASCII//TRANSLIT", "foobar");

Current work-around:

RUN rm /usr/bin/iconv \
  && curl -SL http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz | tar -xz -C . \
  && cd libiconv-1.14 \
  && ./configure --prefix=/usr/local \
  && curl -SL https://raw.githubusercontent.com/mxe/mxe/7e231efd245996b886b501dad780761205ecf376/src/libiconv-1-fixes.patch \
  | patch -p1 -u  \
  && make \
  && make install \
  && libtool --finish /usr/local/lib \
  && cd .. \
  && rm -rf libiconv-1.14

ENV LD_PRELOAD /usr/local/lib/preloadable_libiconv.so

Most helpful comment

A little bit cleaner hack:

RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

Test case:

php -d error_reporting=22527 -d display_errors=1 -r 'var_dump(iconv("UTF-8", "UTF-8//IGNORE", "This is the Euro symbol '\''€'\''."));'
Notice: iconv(): Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed in Command line code on line 1

If you don't get this notice it means it works as expected.

All 41 comments

Technically the musl behavior is correct according POSIX as explained in related issue: https://github.com/akrennmair/newsbeuter/issues/364#issuecomment-250208235

This workaround works fine in alpine 3.3 but if I try to compile php on 3.5 I get this error. Same docker file but changed the version.

ext/gd/libgd/.libs/gdkanji.o: In function `do_convert':
/tmp/php/ext/gd/libgd/gdkanji.c:349: undefined reference to `libiconv_open'
/tmp/php/ext/gd/libgd/gdkanji.c:364: undefined reference to `libiconv'
/tmp/php/ext/gd/libgd/gdkanji.c:380: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_dtor':
/tmp/php/ext/iconv/iconv.c:2565: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/tmp/php/ext/iconv/iconv.c:2591: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen':
/tmp/php/ext/iconv/iconv.c:754: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:778: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:812: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_appendl':
/tmp/php/ext/iconv/iconv.c:474: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:508: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_decode':
/tmp/php/ext/iconv/iconv.c:1504: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1997: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:2000: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:1615: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:1618: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1615: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:1618: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1618: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_append_bucket':
/tmp/php/ext/iconv/iconv.c:2716: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:2637: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:2715: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `_php_iconv_substr':
/tmp/php/ext/iconv/iconv.c:875: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:899: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:954: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:958: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:907: undefined reference to `libiconv_open'
ext/iconv/.libs/iconv.o: In function `_php_iconv_mime_encode':
/tmp/php/ext/iconv/iconv.c:1193: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1207: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1378: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1410: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1466: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:1469: undefined reference to `libiconv_close'
/tmp/php/ext/iconv/iconv.c:1453: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1325: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1277: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1309: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `php_iconv_string':
/tmp/php/ext/iconv/iconv.c:578: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:590: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:608: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:618: undefined reference to `libiconv_close'
ext/iconv/.libs/iconv.o: In function `_php_iconv_strpos':
/tmp/php/ext/iconv/iconv.c:1002: undefined reference to `libiconv_open'
/tmp/php/ext/iconv/iconv.c:1030: undefined reference to `libiconv'
/tmp/php/ext/iconv/iconv.c:1144: undefined reference to `libiconv_close'
collect2: error: ld returned 1 exit status
make: *** [Makefile:281: sapi/cli/php] Error 1

Any magic I'm missing?

I came across this gist which may help! (adjust for your version of PHP)

https://gist.github.com/guillemcanal/be3db96d3caa315b4e2b8259cab7d07e

A little bit cleaner hack:

RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

Test case:

php -d error_reporting=22527 -d display_errors=1 -r 'var_dump(iconv("UTF-8", "UTF-8//IGNORE", "This is the Euro symbol '\''€'\''."));'
Notice: iconv(): Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed in Command line code on line 1

If you don't get this notice it means it works as expected.

@alexanderilyin should that code fix this issue? I can't make it work.
image

This is my dockerfile

RUN apk add -U --no-cache \
    autoconf \
    imap-dev \
    libxml2-dev \
    libpng-dev \
    alpine-sdk \
    mariadb-dev \
    zlib-dev \
    libxslt-dev \
    libjpeg-turbo-dev \
    libmcrypt-dev \
    icu-dev \
    gettext-dev \
    && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr/include \
    && docker-php-ext-configure intl --enable-intl \
    && docker-php-ext-configure imap --with-imap --with-imap-ssl \
    && docker-php-ext-install \
        calendar \
        mysql \
        mysqli \
        bcmath \
        soap \
        xsl \
        gd \
        mbstring \
        pdo \
        pdo_mysql \
        zip \
        exif \
        mcrypt \
        intl \
        gettext \
        imap \
        iconv \
    && pecl install timezonedb \
    && docker-php-ext-enable timezonedb \
    && apk del --purge autoconf alpine-sdk mariadb-dev \
    && apk add -U mariadb-client-libs \
    && cd /usr/local/bin \
    && curl -sS https://getcomposer.org/installer | php \
    && mv composer.phar composer \
    && rm -rf /var/cache/apk/*

RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

@delmicio iconv works fully (transliteration included) with this hack, even though it registers as "unknown" in the phpinfo() output.

@delmicio here is a "test case":

php -d error_reporting=22527 -d display_errors=1 -r 'var_dump(iconv("UTF-8", "UTF-8//IGNORE", "This is the Euro symbol '\''€'\''."));'
Notice: iconv(): Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed in Command line code on line 1

If you don't get this notice it means it works as expected.

@alexanderilyin yes it's working with your code, although the version keeps unknown. A mystery.

@alexanderilyin solution works great. Tested also with repository http://dl-4.alpinelinux.org/alpine/edge/testing

Confirmed that @alexanderilyin solution works. I altered the URL to be based off a CDN link instead:

RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

This appears to be a quirk of PHP when used with musl, and as noted by ncopa above, is POSIX compliant.

Given that and that this thread documents at least one reasonable workaround for folks for whom the default behavior is unacceptable, I'm going to close. Additionally, I imagine using the Debian variants of the image would likely also work. Thanks! :heart:

In my case it was fixed with by installing php7-mbstring first, then php7-iconv.
I'm not sure if my symfony app uses iconv polyfill, but same error was solved

PS
alpine:3.7
php 7.1.12
symfony 4.0

PSS
Exactly same problem and same fix but Laravel and CentOS

Simple and easy work hack which work with $ apk add php7-fpm, php7-mbstring, ..., without compiling from source :)

# Fix iconv extension
ENV PHP_VER="7.1.5"
ARG BUILD_PACKAGES="wget build-base php7-dev"

apk add --no-cache --virtual .php-build-dependencies $BUILD_PACKAGES && \
apk add --no-cache --repository https://dl-3.alpinelinux.org/alpine/edge/testing/ gnu-libiconv-dev && \
(mv /usr/bin/gnu-iconv /usr/bin/iconv; mv /usr/include/gnu-libiconv/*.h /usr/include; rm -rf /usr/include/gnu-libiconv) && \
mkdir -p /opt && \
cd /opt && \
wget https://secure.php.net/distributions/php-$PHP_VER.tar.gz && \
tar xzf php-$PHP_VER.tar.gz && \
cd php-$PHP_VER/ext/iconv && \
phpize && \
./configure --with-iconv=/usr && \
make && \
make install && \
mkdir -p /etc/php7/conf.d && \
echo "extension=iconv.so" >> /etc/php7/conf.d/iconv.ini && \

apk del .php-build-dependencies && \
rm -rf /opt/*
# END Fix iconv extension

Made with ❤️ .

First off, my problem is not with iconv's functionality. However, I ended up here first in my search of why this:

setlocale(LC_ALL, "en_US.utf8");
mb_internal_encoding("UTF-8");
iconv(
    "UTF-8",
    "us-ascii//TRANSLIT",
    html_entity_decode("ÉíúóáöÏëä ™€.pdf", ENT_QUOTES, "UTF-8")
);

returned this in one of my unittests on my apache:7.2 docker environment, but not when locally running it:
?????????? TMEUR.pdf.pdf

I eventually found out because of this comment http://php.net/manual/en/function.iconv.php#86077 that the problem was not with iconv at all, but with the encoding itself. Sure enough, locale -a returned

C.UTF-8
POSIX

on my docker container, which meant that even though I set setlocale(LC_ALL, "en_US.utf8");, since the locale wasn't present on my docker container, the UTF-8 characters weren't being properly transliterated.

The final solution:

RUN apt-get install -y \
        locales && \
        printf 'en_US.UTF-8 UTF-8\n' >> /etc/locale.gen && \
        locale-gen && \
        dpkg-reconfigure --frontend noninteractive locales

And I got the expected 'E'i'u'o'a"o"I"e"a TMEUR.pdf from my test.

Has anyone managed to get rid of single quotes left after transliterating umlauts? I guess it's caused by missing locales in musl? I generated locales with glibc packages as suggested here but no luck.

with the workaround given in this thread its working for IGNORE but not for TRANSLIT:

php -r "echo iconv('ISO-8859-1', 'UTF-8', iconv('UTF-8', 'ISO-8859-1//IGNORE', 'blödṕ'));"

blöd

php -r "echo iconv('ISO-8859-1', 'UTF-8', iconv('UTF-8', 'ISO-8859-1//TRANSLIT', 'blödṕ'));"

PHP Notice: iconv(): Detected an illegal character in input string in Command line code on line 1

The example from @alexanderilyin works both with ignore and Translit.

Any hints? TIA

Has something changed recently on this fix?

 ---> b53c41ac7ae5
Step 4/9 : RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
 ---> Running in 3fb8be52cc74
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  gnu-libiconv (missing):
    required by: world[gnu-libiconv]
The command '/bin/sh -c apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted' returned a non-zero code: 1

Any ideas?

Has something changed recently on this fix?

 ---> b53c41ac7ae5
Step 4/9 : RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
 ---> Running in 3fb8be52cc74
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  gnu-libiconv (missing):
    required by: world[gnu-libiconv]
The command '/bin/sh -c apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted' returned a non-zero code: 1

Any ideas?

According to https://pkgs.alpinelinux.org/packages?name=gnu-libiconv&branch=edge&repo=community, The arg value of --repository should be http://dl-cdn.alpinelinux.org/alpine/edge/community/

Even with the workaround here I'm getting an error when using this code:

echo iconv('CP852', 'utf-8', 'test');
PHP Notice:  iconv(): Wrong charset, conversion from `CP852' to `utf-8' is not allowed in /usr/app/test.php on line 3

Any ideas how to fix that?

EDIT: I believe some encodings are still missing, most likely those that https://www.gnu.org/software/libiconv/ lists under the --enable-extra-encodings option. I even tried building libiconv from source with this option but PHP still failed with the same notice.

Has something changed recently on this fix?

 ---> b53c41ac7ae5
Step 4/9 : RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
 ---> Running in 3fb8be52cc74
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  gnu-libiconv (missing):
    required by: world[gnu-libiconv]
The command '/bin/sh -c apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted' returned a non-zero code: 1

Any ideas?

Change the /testing to /community -> it's been moved.

I ended up with this command

RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted

ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

I ended up with this command

RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted

ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

Works for me

Why is there php on ENV LD_PRELOAD ... line?
(ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php)
As I understand LD_PRELOAD holds a list of libraries separated by space.

@ragnarkurm I think php came from when I was testing it in the command line and then moved to Dockerfile and did not notice it and had no warning/problems with. It should be ok to remove it.

apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv

gnu-libiconv (missing):
required by: world[gnu-libiconv]
The command '/bin/sh -c apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv' returned a non-zero code: 1

https://github.com/wodby/php/issues/70#issue-418524490

You have to use http://dl-cdn.alpinelinux.org/alpine/edge/community/ as repository, because it has been moved there.

No more /usr/lib/preloadable_libiconv.so in gnu-libiconv
On my last build image the preloadable_libiconv.so is not more avaliable in apk.

Older image build :

/var/www # ls /usr/lib | grep iconv
libiconv.so.2
libiconv.so.2.6.0
preloadable_libiconv.so

Newer image build :

/var/www # ls /usr/lib | grep iconv
libiconv.so.2
libiconv.so.2.6.1

Both build with this dockerfile section :

# Fix iconv library
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

@ArthurJam try installing the version 1.15-r2 which is the latest version that includes de preloadable_libiconv.so

apk add gnu-libiconv=1.15-r2 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community

that should work, already tested using php 7.2 and alpine 3.12

Thx for the answer.

I cant install this version of gnu-libiconv :

```

[php 8/16] RUN apk add gnu-libiconv=1.15-r2 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community:

13 0.411 fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

13 0.946 fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz

13 1.170 fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz

13 1.453 ERROR: unsatisfiable constraints:

13 1.491 gnu-libiconv-1.16-r0:

13 1.491 breaks: world[gnu-libiconv=1.15-r2]

```

@ArthurJam try replacing your original fix with this:

# Fix iconv library
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ gnu-libiconv=1.15-r2
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

it s like the version of this package no longer exists :

 => ERROR [php  8/16] RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ gnu-libiconv=1.15-r2                    1.3s
------
 > [php  8/16] RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ gnu-libiconv=1.15-r2:
#12 0.473 fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
#12 0.737 fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
#12 1.081 fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
#12 1.217 ERROR: unsatisfiable constraints:
#12 1.246   gnu-libiconv-1.16-r0:
#12 1.246     breaks: world[gnu-libiconv=1.15-r2]

@ArthurJam Ah, I see where the problem is. The old version doesn't exist for the new Alpine 3.13. For now keep using Alpine 3.12.

@enumag
I forgot to say that i'm using v3.8 of alpine (for php5.6)
Thx to you, I found a way to fix my problem :

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.12/community/ gnu-libiconv=1.15-r2
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
FROM php:7.3-fpm-alpine
...
RUN apk add --upgrade gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
...

It's working in my case

# apk list -i |grep libiconv
gnu-libiconv-1.15-r3 x86_64 {gnu-libiconv} (LGPL) [installed]
# echo "Jäger meister" | iconv -f UTF-8 -t ASCII//TRANSLIT
J"ager meister
FROM php:7.3-fpm-alpine
...
RUN apk add --upgrade gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
...

This works nicely, cheers @ipatio. Simpler fix than the community repository one above that I was previously relying on.

Has anybody upgraded to PHP8 yet? The answers above worked for PHP7.2/7.4, but not with PHP8.

We get the error
PHP Warning: iconv(): Wrong encoding, conversion from "MAC" to "UTF-8" is not allowed

with

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

@tobiasbambullis : Yeah. Just start from image like php:8.0-fpm-alpine3.12 and utilize the workaround @enumag suggested.

@helvete & @tobiasbambullis it appears that php:8.0-fpm-alpine doesn't like gnu-libiconv-1.16-r0 which is not actually available on the edge repository which is linked in the answer, though good news! One of the earlier repo versions has an earlier version 1.15-r3 which php8 accepts!

RUN apk add gnu-libiconv=1.15-r3 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ --allow-untrusted
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

Of course you could do what OP did and just pull from gnu.org instead but doubt that is as optimised as alpine's CDN and might kill their server

Just bumped into this on php7.4-fpm, running apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv does not create /usr/lib/preloadable_libiconv.so anymore. However if you do pin the library version to 1.15-r3 as described by @joepagan it works. Thanks for the workaround.

PHP (8) has to be built with ./configure --with-iconv=/usr/local after GNU Iconv packages have been installed.

Was this page helpful?
0 / 5 - 0 ratings