在alpine+nginx+php7的docker环境中,使用函数iconv()
php -r "echo iconv( 'utf-8', 'GBK', 'test');"
报了如下的错误:
Notice: iconv(): Wrong charset, conversion from `ISO8859-1' to `UTF-8' is not allowed in Command line code on line 1
解决方法如下: 在Dockerfile中添加如下代码:
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
重新构建镜像即可。
转自:alpine+nginx+php7的docker环境中的iconv问题
另外:跟alpine的版本也有关系,上述方法适用于 3.12
3.13 和 3.14 使用:
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php