PHP 的 xml 使用 gbk 编码出错

2019 年 4 月 16 日
 ADANMEI

$xml = new \SimpleXMLElement('<aipg></aipg>');

错误是: Exception String could not be parsed as XML Previous exceptions SimpleXMLElement::__construct(): iconv : problems with filters for 'gbk' (0)

这是因为什么环境导致的,我的 php 版本是 php7.2

4832 次点击
所在节点    PHP
7 条回复
MeteorCat
2019 年 4 月 16 日
是不是用了 gbk 的编码数据转 utf8
ADANMEI
2019 年 4 月 16 日
我只是在初始化 SimpleXMLElement
ben1024
2019 年 4 月 16 日
iconv("UTF-8", "GBK//IGNORE", $text);
ADANMEI
2019 年 4 月 16 日
@ben1024 iconv(): Wrong charset, conversion from `UTF-8' to `GBK//IGNORE' is not allowed
utf-8 不被允许,我的 mbstring 拓展拓展是开启的
ADANMEI
2019 年 4 月 16 日
docker-library/php#240 如果使用了 alpine 系统,libiconv 的版本会很低,需要更新一下 libiconv 的版本

在 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

原来是这个原因: https://github.com/aliyun/aliyun-oss-php-sdk/issues/97
ben1024
2019 年 4 月 16 日
@ADANMEI
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
ADANMEI
2019 年 4 月 16 日
@ben1024 应该是这一个了
testing 改成了 community
谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/555579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX